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
38
39
40
41
#include<iostream>
#include<vector>
using namespace std;

void readInput(vector<int>& a) {
    char c;
    while (cin.get(c) && c != '\n') {
        a.push_back(c - '0');
    } 
    
}

int main() {
    vector<int> a, b, c;
    readInput(a);
    readInput(b);
    readInput(c);

    int totalSeq = 0, currSeq = 0, carry = 0;
    int n = a.size();
    for (int i = n - 1; i >= 0; i--) {
        if (a[i] + b[i] == c[i]) {
            if (carry > 0) {
                carry = 0;
                currSeq = 0;
            }
            currSeq++;
            totalSeq += currSeq;
        } else if (a[i] + b[i] + carry == c[i]) {
            carry = 0;
            currSeq++;
            totalSeq += currSeq;
        } else if ((a[i] + b[i] + carry) % 10 == c[i]) {
            carry = 1;
        } else {
            currSeq = 0;
        }
    }
    cout << totalSeq;
    return 0;
}