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
#include <iostream>
#include <string>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    string A, B, C;
    cin >> A >> B >> C;
    int l = A.length();
    long long w = 0;
    int x, y;
    int przeniesienie = 0, dod = 0;

    for (int j = l - 1; j >= 0; j--) {
        x = (A[j] - '0') + (B[j] - '0') + przeniesienie;
        y = C[j] - '0';
        if (x % 10 != y) {
            przeniesienie = 0;
            dod = 0;
            continue;
        }
        if (x != y) {
            if (przeniesienie == 0) dod++;
            przeniesienie = 1;
        }
        else {
            w += dod;
            if (przeniesienie == 0) {
                dod++;
                w++;
            }
            przeniesienie = 0;
        }
    }
    cout << w;
    return(0);
}