trang chủ / đề bài / voi18_robot

Robot

Đề bài

Mô tả

Chủ đề của cuộc thi ROBCON năm nay là "Tìm đường thoát mê cung". Tuấn vừa chế tạo được một robot để tham dự cuộc thi này. Tuấn rất thành thạo trong kỹ thuật chế tạo máy nhưng trong lập trình lại không được tốt như vậy. Do đó, Tuấn mới chỉ lập được một chương trình còn khá đơn giản để điều khiển robot của mình.

Robot di chuyển về phía trước với tốc độ 1 mét/giây cho đến khi gặp vật cản. Khi gặp vật cản robot sẽ liên tiếp thực hiện quay trái 90 độ cho đến khi trước mặt nó không có vật cản và lại tiếp tục di chuyển về phía trước. Thời gian để robot thực hiện đổi hướng chuyển động là cực nhanh, vì thế được coi là bằng 0. Robot không bao giờ tự dừng chuyển động.

Để thử nghiệm robot, Tuấn đã xây dựng một mê cung trên một mặt sàn thi đấu rất rộng lớn. Mặt sàn có dạng một lưới ô vuông kích thước 1×1 mét. Các cột của lưới được đánh số bởi các số nguyên từ −1010 đến 1010, từ trái qua phải. Các dòng của lưới được đánh số bởi các số nguyên từ −1010 đến 1010, từ trên xuống dưới. Ô nằm trên giao của cột x và dòng y được gán với toạ độ (x,y). Mê cung mà Tuấn xây dựng là một lưới con kích thước N×N với ô ở góc trái trên có toạ độ (1,1). Trong một số ô của mê cung có đặt vật cản, các ô còn lại là ô rỗng (ô không có vật cản).

Tuấn đặt robot của mình vào ô có toạ độ (x,y), mặt robot quay về phía trên của lưới và cho robot chuyển động. Biết rằng vị trí mà Tuấn đặt robot không có vật cản và có ít nhất một ô chung cạnh với ô đặt robot là ô rỗng. Tuấn muốn xác định vị trí của robot sau S giây.

Yêu cầu: Hãy giúp Tuấn giải quyết vấn đề đặt ra.

Dữ liệu vào

  • Dòng đầu tiên chứa bốn số nguyên N, x, y, S được ghi cách nhau bởi dấu cách (1≤N≤1000, −105≤x,y≤105);
  • N dòng tiếp theo mô tả mê cung, mỗi dòng gồm N ký hiệu được ghi liên tiếp nhau, mỗi ký hiệu được lấy từ tập {#, .}, trong đó ký hiệu # cho biết ô tương ứng trong mê cung có vật cản, còn ký hiệu . cho biết ô tương ứng trong mê cung là ô rỗng. Dòng thứ i trong N dòng này là dòng y=i của mê cung, ký hiệu thứ j của dòng là ô ở cột x=j.

Dữ liệu ra

In ra hai số nguyên cách nhau bởi một dấu cách là toạ độ của ô mà robot đạt đến sau S giây.

Ô xuất phát và ô mà robot đạt đến sau S giây không nhất thiết phải nằm trong mê cung.

Ràng buộc

  • 1≤N≤1000;
  • −105≤x,y≤105;
  • 1≤S≤109.

Subtasks

  • Subtask 1 (50% số test, 50% số điểm): 1≤S≤105;
  • Subtask 2 (50% số test, 50% số điểm): 1≤S≤109.

Ví dụ

Input Output Giải thích
4 3 5 9
###.
#...
#..#
##.#
2 3 Robot xuất phát từ ô (3,5) nằm ngoài mê cung, đi lên qua (3,4), (3,3) tới (3,2) (giây thứ 3). Ô (3,1) có vật cản nên robot quay trái, đi tới (2,2); ô (1,2) có vật cản nên quay trái, đi xuống (2,3); ô (2,4) có vật cản nên quay trái, đi sang (3,3); ô (4,3) có vật cản nên quay trái, đi lên (3,2), rồi lặp lại: (2,2), (2,3). Sau 9 giây robot ở ô (2,3).
3 2 5 7
###
#..
#..
2 6 Robot đi lên qua (2,4), (2,3) tới (2,2) sau 3 giây. Ô (2,1) và ô (1,2) có vật cản nên robot quay trái hai lần, quay mặt xuống dưới, đi qua (2,3), (2,4), (2,5) và tới (2,6) sau 7 giây.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0