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
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    string A, B, C;
    cin >> A >> B >> C;
    int n = A.size();

    long long cnt[2] = {0, 0};
    long long answer = 0;

    for (int k = n - 1; k >= 0; k--) {
        long long nc[2] = {0, 0};
        int s = (A[k] - '0') + (B[k] - '0') - (C[k] - '0');

        cnt[0]++;

        if (s == 0)       nc[0] += cnt[0];
        else if (s == 10) nc[1] += cnt[0];

        if (s == -1)      nc[0] += cnt[1];
        else if (s == 9)  nc[1] += cnt[1];

        answer += nc[0];
        cnt[0] = nc[0];
        cnt[1] = nc[1];
    }

    cout << answer << "\n";
    return 0;
}