1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
a = input()
b = input()
c = input()

result = 0
r = len(a) - 1
active = [False] * (len(a) + 1)
acc = 0

for l in range(len(a)-1, -1, -1):
    # print(active)
    if active[l+1]:
        acc -= 1

    if (int(a[l]) + int(b[l])) % 10 != int(c[l]):
        continue

    if l <= r:
        acc = 0
        r = l

    carry = 0
    while r >= 0:
        if (int(a[r]) + int(b[r]) + carry) % 10 != int(c[r]):
            break
        else:
            if int(a[r]) + int(b[r]) + carry >= 10:
                carry = 1
            else:
                active[r] = True
                acc += 1
                carry = 0
            r -= 1
    result += acc
    # print(l, acc)

print(result)