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
#include <bits/stdc++.h>
#define ll long long
using namespace std;
 
void solve(){
    string a, b, c; cin>>a>>b>>c;

    ll n = a.size(), lastFirst = -1, answer = 0;
    bool lastGood = 0;

    for(ll i=0; i<n; i++){
        if(a[i] - '0' + b[i] - '0' == c[i] - '0'){
            if(!lastGood) lastFirst = i;
            lastGood = 1;
        }
        else{
            if(lastGood) answer += (i-lastFirst+1)*(i-lastFirst+2)/2;
            lastGood = 0;
        }
    }

    if(lastGood) answer += (n-1-lastFirst+1)*(n-1-lastFirst+2)/2;

    cout<<answer<<'\n';
}
 
int main(){
    ios_base::sync_with_stdio(0);
    cout.tie(0); cin.tie(0);
 
    int sets=1; //cin>>sets;
    while(sets--){
        solve();
    }
    return 0;
}