trang chủ / bài tập / vasyrobot

Robot của Vasya

Đề bài

Mô tả

Một con robot đứng trên mặt phẳng tọa độ vô hạn, ban đầu ở ô (0,0). Robot có thể thực hiện bốn loại thao tác:

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

Bạn được cho một dãy gồm n thao tác. Bạn muốn sửa dãy này sao cho sau khi thực hiện nó, robot dừng lại đúng tại ô (x,y).

Việc sửa chỉ được phép thay thế một thao tác bằng một thao tác khác (có thể trùng chính nó); không được thêm hoặc bớt thao tác. Gọi các chỉ số của những thao tác bị thay đổi là tập hợp các vị trí, độ dài của đoạn bị thay đổi được tính bằng maxIDminID+1, trong đó maxID là chỉ số lớn nhất và minID là chỉ số nhỏ nhất trong số các thao tác bị thay đổi. Nếu không có thao tác nào bị thay đổi thì độ dài đoạn bị thay đổi bằng 0.

Hãy tìm độ dài nhỏ nhất của đoạn cần thay đổi để robot đi từ (0,0) tới (x,y), hoặc cho biết điều đó là không thể.

Dữ liệu vào

  • Dòng thứ nhất chứa số nguyên n, số lượng thao tác.
  • Dòng thứ hai chứa dãy thao tác: một xâu gồm n ký tự, mỗi ký tự là một trong U, D, L, R.
  • Dòng thứ ba chứa hai số nguyên x,y, tọa độ ô mà robot phải kết thúc.

Dữ liệu ra

In ra một số nguyên: độ dài nhỏ nhất của đoạn có thể thay đổi để dãy thao tác đưa robot từ (0,0) tới (x,y). Nếu không thể, in ra 1.

Ràng buộc

  • 1n2·105
  • 109x,y109

Ví dụ

Input Output Giải thích
5
RURUU
-2 3
3 Có thể đổi dãy thành LULUU. Các thao tác bị đổi có chỉ số 13, nên độ dài đoạn là 31+1=3.
4
RULR
1 1
0 Dãy đã cho đưa robot tới đúng (1,1), không cần đổi gì.
3
UUU
100 100
-1 Với 3 thao tác không thể tới (100,100) vì tổng khoảng cách cần đi vượt quá số thao tác.

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