#include <bits/stdc++.h>
using namespace std;
#define nd second
#define st first
#define int long long
main() {
string s1,s2,s3;
cin>>s1>>s2>>s3;
int n = s1.size();
vector<int> lens;
int cnt = 0;
for(int i=n-1; i>=0; i--) {
int a = s1[i] - '0';
int b = s2[i] - '0';
int c = s3[i] - '0';
if((a+b)%10 == c && (a+b)/10 == 0) {
cnt++;
}
else if((a+b)%10 == c && (a+b)/10 == 1) {
// cout<<i<<endl;
bool f = 0;
bool in = 0;
while(i>0) {
in = 1;
i--;
a = s1[i] - '0';
b = s2[i] - '0';
c = s3[i] - '0';
if((a+b+1)%10 == c && (a+b+1)/10 == 0) {
f = 1;
break;
}
else if((a+b+1)%10 != c) {
break;
}
}
if(f) {
cnt++;
// cout<<i<<"F"<<endl;
}
else {
if(in)
i++;
if(cnt) {
lens.push_back(cnt);
// cout<<i<<"A"<<endl;
}
cnt = 0;
}
}
else {
if(cnt) {
lens.push_back(cnt);
// cout<<i<<endl;
}
cnt = 0;
}
}
if(cnt)
lens.push_back(cnt);
vector<int> sums(n+1);
for(int i=1; i<=n; i++) {
sums[i] = i + sums[i-1];
}
long long res = 0;
for(int i=0; i<lens.size(); i++) {
res += sums[lens[i]];
}
cout<<res;
}
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 | #include <bits/stdc++.h> using namespace std; #define nd second #define st first #define int long long main() { string s1,s2,s3; cin>>s1>>s2>>s3; int n = s1.size(); vector<int> lens; int cnt = 0; for(int i=n-1; i>=0; i--) { int a = s1[i] - '0'; int b = s2[i] - '0'; int c = s3[i] - '0'; if((a+b)%10 == c && (a+b)/10 == 0) { cnt++; } else if((a+b)%10 == c && (a+b)/10 == 1) { // cout<<i<<endl; bool f = 0; bool in = 0; while(i>0) { in = 1; i--; a = s1[i] - '0'; b = s2[i] - '0'; c = s3[i] - '0'; if((a+b+1)%10 == c && (a+b+1)/10 == 0) { f = 1; break; } else if((a+b+1)%10 != c) { break; } } if(f) { cnt++; // cout<<i<<"F"<<endl; } else { if(in) i++; if(cnt) { lens.push_back(cnt); // cout<<i<<"A"<<endl; } cnt = 0; } } else { if(cnt) { lens.push_back(cnt); // cout<<i<<endl; } cnt = 0; } } if(cnt) lens.push_back(cnt); vector<int> sums(n+1); for(int i=1; i<=n; i++) { sums[i] = i + sums[i-1]; } long long res = 0; for(int i=0; i<lens.size(); i++) { res += sums[lens[i]]; } cout<<res; } |
English