#33. 手牵手

手牵手

手牵手

时间限制:1s1s

空间限制:256MB256MB

题目描述

最近,须弥出现了一款游戏--手牵手。纳西妲非常喜欢这款游戏,所以把这款游戏推荐给了你。游戏的主要玩法是这样的:

在一个nmn*m的网格图中,有一个公主和一个王子,当然还有一些不能通过的障碍物。如果这个游戏只是让王子尽可能快的找到公主,那未免太无趣了,纳西妲也不会推荐给你。事实上,在这个游戏里,公主和王子总是心有灵犀,会做相同的事情。比如说王子左移一格,那么公主也左移一格;公主上移一格,王子也上移一格。当然,如果王子左移了一格,而公主的左侧是障碍物,那么公主就只能停留在原地了,其他情况类推。也就是说,玩家每次都可以在[U,D,L,R][U,D,L,R]四个指令中选择一个(依次为上下左右),然后公主和王子会同时执行该操作,遇到障碍物或者边界的则原地不动。你的任务是构造一个操作序列,使得王子和公主可以相遇。当然,你不需要做到最优解,只需要在10410^4次操作内完成就可以了。

数据格式

输入

第一行,两个正整数n,mn,m.1nm5001 \le n*m \le 500

接下来nn行,每行mm个正整数ai,ja_{i,j}。如果ai,j=0a_{i,j} = 0表示该位置没有障碍物,如果ai,j=1a_{i,j} = 1表示该位置有障碍物。

接下来一行,两个正整数x1,y1x_1,y_1表示王子的位置。

接下来一行,两个正整数x2,y2x_2,y_2表示公主的位置。

数据保证王子和公主是可以相遇的。

输出

一个由[U,D,L,R][U,D,L,R]组成的操作序列,长度不能超过10410^4.

样例

输入

4 5
00111
10000
11001
11000
1 2
3 4

输出

ULLUL

注意事项

比较下面两段代码

void output1()
{
    for (int i = 0; i < 10000; i++) 
        cout << "U";
}
void output2()
{
	for (int i = 0; i < 10000; i++) 
        cout << "U"; 
    cout << endl;
}

其中output2output1多输出了一个std::endl,所以它的输出长度为1000110001,会被判定为长度超出范围。

同样的道理,对于python选手而言,由于函数print默认结束符为'\n',也会多出一个字符,所以建议像这样输出

print("U"*10000,end='').

当然在正常情况下,你的构造应该不会正好达到1000010000这个极限,这里只是作为提醒。