#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
typedef long long ll;
void solve(){
string A, B, C;
cin >> A >> B >> C;
int n = A.length();
vector<int> lft(n), rgh(n);
vector<bool> valid(n, 1);
for(int i = 0; i < n; i++){
int d = (A[i] - '0') + (B[i] - '0') - (C[i] - '0');
if(d == 0){
lft[i] = 0;
rgh[i] = 0;
}
else if(d == -1){
lft[i] = 0;
rgh[i] = 1;
}
else if(d == 10){
lft[i] = 1;
rgh[i] = 0;
}
else if(d == 9){
lft[i] = 1;
rgh[i] = 1;
}
else {
valid[i] = false;
}
}
ll ans = 0;
int i = 0;
while(i < n){
if(!valid[i]){
i++;
continue;
}
int j = i;
while(j + 1 < n && valid[j + 1] && rgh[j] == lft[j + 1]){
j++;
}
ll cnt = 0;
for(int k = j; k >= i; k--){
if(rgh[k] == 0) cnt++;
if(lft[k] == 0) ans += cnt;
}
i = j + 1;
}
cout << ans << '\n';
}
bool multi = 0;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int t = 1;
if(multi) cin >> t;
while(t--){
solve();
}
return 0;
}
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | #include <bits/stdc++.h> using namespace std; #define fi first #define se second typedef long long ll; void solve(){ string A, B, C; cin >> A >> B >> C; int n = A.length(); vector<int> lft(n), rgh(n); vector<bool> valid(n, 1); for(int i = 0; i < n; i++){ int d = (A[i] - '0') + (B[i] - '0') - (C[i] - '0'); if(d == 0){ lft[i] = 0; rgh[i] = 0; } else if(d == -1){ lft[i] = 0; rgh[i] = 1; } else if(d == 10){ lft[i] = 1; rgh[i] = 0; } else if(d == 9){ lft[i] = 1; rgh[i] = 1; } else { valid[i] = false; } } ll ans = 0; int i = 0; while(i < n){ if(!valid[i]){ i++; continue; } int j = i; while(j + 1 < n && valid[j + 1] && rgh[j] == lft[j + 1]){ j++; } ll cnt = 0; for(int k = j; k >= i; k--){ if(rgh[k] == 0) cnt++; if(lft[k] == 0) ans += cnt; } i = j + 1; } cout << ans << '\n'; } bool multi = 0; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t = 1; if(multi) cin >> t; while(t--){ solve(); } return 0; } |
English