AtCoder Regular Contest 089: C - Traveling

,

https://beta.atcoder.jp/contests/arc089/tasks/arc089_a

solution

時刻$0, t_1, t_2, \dots, t_N$での位置は決まっているので、それらの間の移動ごとに分けて考えてよい。この移動可能性は到達してからその近くで足踏みすると見れば$O(1)$で求まる。全体で$O(N)$。

implementation

#!/usr/bin/env python3
def pred(t, x, y):
    return x + y <= t and (x + y - t) % 2 == 0
result = True
t, x, y = 0, 0, 0
for _ in range(int(input())):
    nt, nx, ny = map(int, input().split())
    if not pred(nt - t, abs(nx - x), abs(ny - y)):
        result = False
        break
    t, x, y = nt, nx, ny
print(['No', 'Yes'][result])