问题描述
小T和她的男神位于一个二维坐标平面上,x和y轴的正方向分别是水平向右和竖直向上。
小T位于点(sx, sy),男神位于点(tx, ty),满足男神在小T的右上方。
小T到每次可以向上或向下或向左或向右移动一个单位,她要到他的身旁(tx, ty),再回到她自己原来的位置(sx, sy),再回到他的身旁(tx, ty),再回到自己原来的位置(sx, sy)。
请输出一种最短的走法,满足:除了(sx, sy)和(tx, ty)外,不经过同一个点两次。
输入格式
一行用空格隔开的4个整数sx, sy, tx, ty (-1000≤sx, sy, tx, ty≤1000)
代表小T的起始位置(sx, sy)和男神的位置(tx, ty)
输出格式
输出一种小T的合法路径,分别用UDLR来代表每一步的上下左右,具体可见样例及解释
请按样例的方式来走QAQ
输入样例
0 0 1 2
输出样例
UURDDLLUUURRDRDDDLLU
【提示】
从(sx, sy)到(tx, ty):(0,0)->(0,1)->(0,2)->(1,2)
从(tx, ty)到(sx, xy):(1,2)->(1,1)->(1,0)->(0,1)
从(sx, sy)到(tx, ty):(0,0)->(-1,0)->(-1,1)->(-1,2)->(-1,3)->(0,3)->(1,3)->(1,2)
从(tx, ty)到(sx, xy):(1,2)->(2,2)->(2,1)->(2,0)->(2,-1)->(1,-1)->(0,-1)->(0,0)
代码
sx,sy,tx,ty=map(int,input().split())
x=tx-sx
y=ty-sy
for i in range(y):
print('U',end='')
for j in range(x):
print('R',end='')
for a in range(y):
print('D', end='')
for b in range(x):
print('L', end='')
print('L',end='')
for c in range(y+1):
print('U',end='')
for d in range(x+1):
print('R',end='')
print('D',end='')
print('R',end='')
for e in range(y+1):
print('D',end='')
for f in range(x+1):
print('L',end='')
print('U',end='')