#include<bits/stdc++.h>
using ll = long long;
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
string s1, s2, s3;
cin >> s1 >> s2 >> s3;
int n = s1.size() - 1;
int l = n, r = n;
ll ans = 0;
ll advance = 0;
ll update = 0;
for(int i = n; i >= 0; i--){
if((s1[i] - '0' + s2[i] - '0')%10 == s3[i] - '0'){
if(advance == 0){
update++;
}else{
update = 1;
}
if((s1[i] - '0' + s2[i] - '0') >= 10){
advance = 1;
}else{
advance = 0;
}
}else if((s1[i] - '0' + s2[i] - '0' + 1)%10 == s3[i] - '0'){
if(advance == 0){
update = 0;
advance = 0;
}else if((s1[i] - '0' + s2[i] - '0' + 1) >= 10){
advance = 1;
}else{
advance = 0;
}
}else{
advance = 0;
update = 0;
}
if(advance == 0){
ans += update;
}
}
cout << ans << '\n';
}
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 | #include<bits/stdc++.h> using ll = long long; using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); string s1, s2, s3; cin >> s1 >> s2 >> s3; int n = s1.size() - 1; int l = n, r = n; ll ans = 0; ll advance = 0; ll update = 0; for(int i = n; i >= 0; i--){ if((s1[i] - '0' + s2[i] - '0')%10 == s3[i] - '0'){ if(advance == 0){ update++; }else{ update = 1; } if((s1[i] - '0' + s2[i] - '0') >= 10){ advance = 1; }else{ advance = 0; } }else if((s1[i] - '0' + s2[i] - '0' + 1)%10 == s3[i] - '0'){ if(advance == 0){ update = 0; advance = 0; }else if((s1[i] - '0' + s2[i] - '0' + 1) >= 10){ advance = 1; }else{ advance = 0; } }else{ advance = 0; update = 0; } if(advance == 0){ ans += update; } } cout << ans << '\n'; } |
English