#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
cin.tie(0) -> sync_with_stdio(0);
string s,s2,s3;
cin>>s>>s2>>s3;
int l = s.size()-1;
vector<int> co, co2;
int ile = 0;
int czy = 0;
while(l >= 0){
/// cout<<l<<' ';
int x = s[l]-'0';
int y = s2[l]-'0';
int z = s3[l]-'0';
if((x+y+czy) % 10 == z){
if(!czy){
co.push_back(l);
}
if(x+y+czy < 10){
co2.push_back(l);
}
czy = (x+y+czy >= 10 ? 1 : 0);
l --;
}
else{
/// cout<<"ZLE : \n";
int j = 0;
for(int i=0;i<co.size();i++){
while(j < co2.size() && co2[j]>co[i]){
j ++;
}
if(j == co2.size()){
break;
}
ile += co2.size()-j;
}
/// cout<<'\n';
co.clear();
co2.clear();
if(!czy){
l --;
}
czy = 0;
}
}
int j = 0;
for(int i=0;i<co.size();i++){
while(j < co2.size() && co2[j]>co[i]){
j ++;
}
if(j == co2.size()){
break;
}
ile += co2.size()-j;
}
cout<<ile;
}
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 | #include<bits/stdc++.h> #define int long long using namespace std; signed main(){ cin.tie(0) -> sync_with_stdio(0); string s,s2,s3; cin>>s>>s2>>s3; int l = s.size()-1; vector<int> co, co2; int ile = 0; int czy = 0; while(l >= 0){ /// cout<<l<<' '; int x = s[l]-'0'; int y = s2[l]-'0'; int z = s3[l]-'0'; if((x+y+czy) % 10 == z){ if(!czy){ co.push_back(l); } if(x+y+czy < 10){ co2.push_back(l); } czy = (x+y+czy >= 10 ? 1 : 0); l --; } else{ /// cout<<"ZLE : \n"; int j = 0; for(int i=0;i<co.size();i++){ while(j < co2.size() && co2[j]>co[i]){ j ++; } if(j == co2.size()){ break; } ile += co2.size()-j; } /// cout<<'\n'; co.clear(); co2.clear(); if(!czy){ l --; } czy = 0; } } int j = 0; for(int i=0;i<co.size();i++){ while(j < co2.size() && co2[j]>co[i]){ j ++; } if(j == co2.size()){ break; } ile += co2.size()-j; } cout<<ile; } |
English