【AtCoder参加記録】ABC229【AC2完】

f:id:itsy68:20211127230833p:plain

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')