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
#include <iostream>

using namespace std;

const int SIZE = 1000000;

int main(int argc, char const *argv[])
{
    string s;
    int n;
    long long res=0;
    char a[SIZE], b[SIZE], c[SIZE];
    char t;

    cin >> s;
    n = s.length();

    for (int i=0; i<n; i++) a[i] = s[n-i-1] - '0';
    cin >> s;
    for (int i=0; i<n; i++) b[i] = s[n-i-1] - '0';
    cin >> s;
    for (int i=0; i<n; i++) c[i] = s[n-i-1] - '0';

    for (int i=0; i<n; i++) {
        t = 0;
        for (int j=i; j<n; j++) {
            t += a[j] + b[j];
            if (t % 10 != c[j]) break;
            if (t < 10) res++;
            t /= 10;
        }
    }

    cout << res << endl;

    return 0;
}