Robot trồng cây

View as PDF

Time limit: 1.0s , Memory limit: 256M , Points: 10 (partial)

Cho hình chữ nhật được chia thành một lưới ô vuông gồm M hàng và N cột mà ở mỗi ô có thể trồng được một cây. Vị trí hàng được đánh số từ trên xuống dưới, cột được đánh số từ trái sang phải. Mỗi ô chứa một trong hai giá trị là 01. Ô chứa số 1 là đã có cây, còn ô chứa số 0 là chưa có cây.

Bạn thiết kế một robot trồng cây để trồng lại cây. Robot này sau khi trồng cây ở một ô có khả năng đến một trong 4 ô kề cạnh để trồng tiếp. Để điều khiển robot bạn hãy cung cấp cho nó một xâu ký tự chỉ gồm các ký tự D, T, N, B hàm ý robot phải di chuyển tới ô kề cận theo hướng đông, tây, nam hay bắc. Robot không được đi ra khỏi vùng đất. Robot cũng không được tiến vào vùng đất đã có cây dù là cây có từ trước hay cây do chính robot vừa trồng.

Ban đầu robot được đưa vào một vị trí có cây đã bị chặt ở hàng thứ Y, cột thứ X và đó là ô đầu tiên robot phải trồng cây. Căn cứ vào bản đồ cây và vị trí ban đầu của robot, hãy lập trình sinh ra xâu ký tự điều khiển robot sao cho robot trồng được nhiều cây nhất có thể.

Input

Dòng đầu tiên chứa 4 số tự nhiên M, N, Y, X thỏa 0 < N, M < 16.

M dòng tiếp theo mỗi dòng có N số 0 hoặc 1.

Output

In kết quả là xâu ký tự điều khiển hành trình của robot.

Samples

Sample Input 1
6 6 6 4
1 1 0 1 1 1
1 1 0 0 0 0
0 0 0 1 1 0
0 0 0 0 0 1
1 1 0 0 1 1
1 1 1 0 1 1
Sample Output 1
BTBTTBDDBDDDN

Comments