#include <bits/stdc++.h>
using namespace std;
int main()
{
string s1,s2,s3;
cin>>s1;
cin>>s2;
cin>>s3;
int n=s1.length();
long long int res=0;
int pot=0;
int car=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+car)%10)!=c)
{
pot=0;
car=0;
}
if((a+b)%10==c)
{
pot++;
}
if(a+b+car==c)
{
res+=pot;
//cout<<i<<"\n";
}
car=(a+b+car)/10;
}
/*for(int i=n-1; i>=0; i--)
{
car=0;
for(int j=i; j>=0; j--)
{
int a=s1[j]-'0';
int b=s2[j]-'0';
int c=s3[j]-'0';
if((a+b+car)%10!=c)
break;
car=(a+b)/10;
if(car==0)
cout<<j<<" "<<i<<"\n";
}
}*/
cout<<res<<"\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 namespace std; int main() { string s1,s2,s3; cin>>s1; cin>>s2; cin>>s3; int n=s1.length(); long long int res=0; int pot=0; int car=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+car)%10)!=c) { pot=0; car=0; } if((a+b)%10==c) { pot++; } if(a+b+car==c) { res+=pot; //cout<<i<<"\n"; } car=(a+b+car)/10; } /*for(int i=n-1; i>=0; i--) { car=0; for(int j=i; j>=0; j--) { int a=s1[j]-'0'; int b=s2[j]-'0'; int c=s3[j]-'0'; if((a+b+car)%10!=c) break; car=(a+b)/10; if(car==0) cout<<j<<" "<<i<<"\n"; } }*/ cout<<res<<"\n"; } |
English