这是ICPC在线回合问题。我检查了样本输入和我自己想象的输入。 This is link to question
这是我的代码。这段代码是用Python编写的。
for _ in range(int(input())):
x1,y1,x2,y2=map(int,input().split())
if (x2-x1==y2-y1)or((x2-x1!=0)and(y2-y1!=0)):
print('sad')
elif (x2-x1==0 and y2-y1>0):
print('up')
elif (x2-x1==0 and y2-y1<0):
print('down')
elif (y2 - y1 == 0 and x2 - x1 > 0):
print('right')
elif (y2 - y1 == 0 and x2 - x1 < 0):
print('left')
任何人都可以建议该代码的输入不起作用?如果所有输入的代码都是正确的,那么欢迎任何修改吗?
答案 0 :(得分:0)
您的代码已经无法正确解析输入。看看:
python /tmp/test.py
1
0 0 0 1
Traceback (most recent call last):
File "/tmp/test.py", line 3, in <module>
x1, y1, x2, y2 = map(int, input().split())
File "<string>", line 1
0 0 0 1
^
除此之外,它似乎是合乎逻辑的。
但是,您的编码风格是可以改进的。看看我的版本:
for _ in range(int(input())):
x1, y1, x2, y2 = map(int, input().split())
if x1 != x2 and y1 != y2:
print('sad')
elif x1 == x2 and y1 < y2:
print('up')
elif x1 == x2 and y1 > y2:
print('down')
elif y1 == y2 and x1 < x2:
print('right')
elif y1 == y2 and x1 > x2:
print('left')
我唯一改变的是改善条件。此外,我删除了底部的冗余条件。
作为NWERC和ACM-ICPC的前参与者,我只能建议关注可读代码。它不像生产代码库那么重要,但是当你必须调试打印代码时它会有很大的帮助,就像真正的竞争对手一样。