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

typedef long long ll;

using namespace std;

int main(){
    cin.tie(0)->sync_with_stdio(0);

    string a, b, c;
    cin >> a >> b >> c;
    int n = a.size();

    ll ans = 0;
    ll cnt = 0;
    int carry = 0;
    for(int i = n-1; i >= 0; i--){
        if(carry == 0) cnt++;
        if((a[i] - '0' + b[i] - '0' + carry)%10 == c[i] - '0'){
            carry = (a[i] - '0' + b[i] - '0' + carry)/10;
        }else if((a[i] - '0' + b[i] - '0') % 10 == c[i] - '0'){
            cnt = 1;
            carry = (a[i] - '0' + b[i] - '0') / 10;
        }else{
            cnt = 0;
            carry = 0;
        }
        if(carry == 0) ans += cnt;
    }
    cout << ans << '\n';

    return 0;
}