ABC86 C - 여행으로 자신의 성장을 느꼈다.
8717 단어 AtCoder파이썬AtCoderBeginnerContest
t,x,y를 받을 때마다 NG 조건에 걸리지 않습니까?
봐주면 좋다.
일단 쓰면,
For의 중첩도 불필요했기 때문에,
어쩌면 갈 수 있다고 밟았다.
Traveling.py
from sys import exit
N = int(input())
rear = 0
x0,y0 = 0,0
for _ in range(N):
curent,x1,y1 = map(int,input().split())
if curent-rear == abs(x1-x0)+abs(y1-y0):
x0,y0 = x1,y1
pass
elif curent-rear < abs(x1-x0)+abs(y1-y0):
print("No")
exit()
else:#<= 注意!
diff = (curent-rear) - (abs(x1-x0)+abs(y1-y0))
if diff%2 != 0:
print("No")
exit()
rear = curent
print("Yes")
위에서 일단 다녔지만. 어쩌면 위의 코드에는 문제가 있습니다.
댓글에있는 것처럼 "주의!"개소를 통과하면,
그것이 연속될 가능성도 있기 때문에 x0,y0 = x1,y1 를 추기해야 할지도.
※그렇다고 하는 것은. 초과한 분을 근단에서 왕복하는 것으로 장소하는 좌표의 일.
Traveling.py
from sys import exit
N = int(input())
rear = 0
x0,y0 = 0,0
for _ in range(N):
curent,x1,y1 = map(int,input().split())
if curent-rear == abs(x1-x0)+abs(y1-y0):
x0,y0 = x1,y1
pass
elif curent-rear < abs(x1-x0)+abs(y1-y0):
print("No")
exit()
else:
diff = (curent-rear) - (abs(x1-x0)+abs(y1-y0))
if diff%2 != 0:
print("No")
exit()
else:
x0, y0 = x1, y1 # <= もし超過した分を近端で往復することで帳消しにする座標が連続する場合は
# ちゃんと座標を保存して次に行かないと WA になる。
rear = curent
print("Yes")
성장을 느꼈을텐데,
미숙함을 느낀 문제이기도했다 (웃음)
Reference
이 문제에 관하여(ABC86 C - 여행으로 자신의 성장을 느꼈다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/AKpirion/items/2427c15c733b57f9c153텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)