#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define st first
#define nd second
#define pii pair<ll,ll>
#define pb push_back
#define pf push_front
#define lll __int128
#define si size()
#define int ll
const int A=1e6+3;
int dp[A][2];
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int sum=0,n,k;
string a,b,c;
cin>>a>>b>>c;
n=a.si;
for(int i=n-1;i>=0;i--){
int su=a[i]+b[i]-'0'-'0',wy=c[i]-'0';
if(su==wy) dp[i][0]=dp[i+1][0]+1;
if(su+1==wy) dp[i][0]=dp[i+1][1];
if(su-10==wy) dp[i][1]=dp[i+1][0]+1;
if(su-9==wy) dp[i][1]=dp[i+1][1];
}
// for(int i=0;i<n;i++)
// cout<<i<<' '<<dp[i][0]<<' '<<dp[i][1]<<'\n';
for(int i=0;i<n;i++) sum+=dp[i][0];
cout<<sum<<'\n';
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 | #include <bits/stdc++.h> using namespace std; #define ll long long #define st first #define nd second #define pii pair<ll,ll> #define pb push_back #define pf push_front #define lll __int128 #define si size() #define int ll const int A=1e6+3; int dp[A][2]; signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); int sum=0,n,k; string a,b,c; cin>>a>>b>>c; n=a.si; for(int i=n-1;i>=0;i--){ int su=a[i]+b[i]-'0'-'0',wy=c[i]-'0'; if(su==wy) dp[i][0]=dp[i+1][0]+1; if(su+1==wy) dp[i][0]=dp[i+1][1]; if(su-10==wy) dp[i][1]=dp[i+1][0]+1; if(su-9==wy) dp[i][1]=dp[i+1][1]; } // for(int i=0;i<n;i++) // cout<<i<<' '<<dp[i][0]<<' '<<dp[i][1]<<'\n'; for(int i=0;i<n;i++) sum+=dp[i][0]; cout<<sum<<'\n'; return 0; } |
English