Robot tuyết

Đề bài

Mô tả

Bạn có một robot di chuyển trên lưới vô hạn. Robot bắt đầu ở ô (0,0) và thực hiện một dãy lệnh là xâu s gồm các ký tự L, R, U, D.

  • L: di chuyển từ (x,y) sang (x1,y).
  • R: di chuyển từ (x,y) sang (x+1,y).
  • U: di chuyển từ (x,y) sang (x,y+1).
  • D: di chuyển từ (x,y) sang (x,y1).

Một dãy lệnh được gọi là hợp lệ nếu:

  1. Robot xuất phát từ (0,0) và kết thúc tại (0,0).
  2. Robot không bao giờ đi vào cùng một ô khác (0,0) quá một lần.
  3. Ô (0,0) được thăm tối đa hai lần (lúc bắt đầu và lúc kết thúc); nếu dãy lệnh rỗng thì (0,0) chỉ được thăm một lần.

Vì xâu s ban đầu có thể không hợp lệ, bạn được phép:

  • Xoá đi một số (có thể là tất cả hoặc không) lệnh trong s,
  • Sau đó sắp xếp lại các lệnh còn lại theo thứ tự tuỳ ý.

Nhiệm vụ: tìm cách xoá ít lệnh nhất có thể (tức là giữ lại nhiều lệnh nhất có thể) sao cho sau khi sắp xếp lại, dãy thu được là hợp lệ. In ra dãy lệnh có độ dài lớn nhất tìm được. Nếu có nhiều đáp án, in ra bất kỳ.

Bạn phải trả lời q truy vấn độc lập.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên q — số truy vấn.
  • q dòng tiếp theo, mỗi dòng chứa một xâu s gồm các ký tự L, R, U, D.

Dữ liệu ra

Với mỗi truy vấn, in ra trên hai dòng:

  • Dòng 1: số nguyên k — số lệnh được giữ lại lớn nhất.
  • Dòng 2: xâu t độ dài k — dãy lệnh hợp lệ thu được. Nếu k=0, bạn có thể in ra dòng trống hoặc bỏ qua dòng thứ hai.

Nếu có nhiều đáp án thoả mãn, in ra một đáp án bất kỳ.

Ràng buộc

  • 1q2·104.
  • 1|s|105.
  • Tổng độ dài tất cả các xâu s không vượt quá 105.

Ví dụ

Input Output Giải thích
6
LRU
DURLDRUDRULRDURDDL
LRUDDLRUDRUL
LLLLRRRR
URDUR
LLL
2
LR
14
LLLUUUURRRDDDD
12
LLLUUURRRDDD
2
LR
2
UD
0
Truy vấn 1: giữ một L và một R, đi qua (1,0) rồi quay về.
Truy vấn 2: lấy 3 L, 4 U, 3 R, 4 D → đi vòng quanh hình chữ nhật 3×4.
Truy vấn 4: chỉ có LR, chọn 1 cặp → độ dài 2.
Truy vấn 5: lấy 1 U và 1 D (không có L/R để ghép) → độ dài 2.
Truy vấn 6: chỉ có L, không tạo được chu trình → 0.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0