【AtCoder参加記録】ABC229【AC2完】
B問題が解けずAC二完という結果になってしまいました。
atcoder.jp
制約が
$$
1\leqq A,B\leqq 10^{18}
$$
となっており、1桁ごとに判定していくのは計算量が
$$
O\left( 10^{18}\right)
$$
となり間に合わないと勘違いしてしまいました。
桁の数をループさせるだけなので最大でも19桁で何の問題もありませんでした。
A, B = map(int, input().split()) a = [int(x) for x in str(A)] a.reverse() b = [int(x) for x in str(B)] b.reverse() hard = False for i, j in zip(a, b): if i+j > 9: hard = True break if hard: print('Hard') else: print('Easy')
解説見ての実装
A, B = map(int, input().split()) hard = False max_len = max(len(str(A)), len(str(B))) for _ in range(max_len): i = A % 10 j = B % 10 A //= 10 B //= 10 if i+j > 9: hard = True break if hard: print('Hard') else: print('Easy')