#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n, curr, wynik;
string s1, s2, s3;
bool carry;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> s1 >> s2 >> s3;
n = s1.size();
for (int i = n-1; i >= 0; i--)
{
//cout << wynik << ' ' << curr << ' ' << i << ' ';
int a = s1[i]-'0';
int b = s2[i]-'0';
int c = s3[i]-'0';
if (a + b == c)
{
if (carry) curr = 0;
wynik += ++curr;
carry = false;
continue;
}
if (a + b == c + 10)
{
if (carry) curr = 0;
carry = true;
continue;
}
if (carry)
{
if (a + b + 1 == c)
{
wynik += ++curr;
carry = false;
continue;
}
if (a + b + 1 == c + 10)
{
continue;
}
}
curr = 0;
carry = false;
}
cout << wynik;
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #include <bits/stdc++.h> using namespace std; typedef long long ll; ll n, curr, wynik; string s1, s2, s3; bool carry; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> s1 >> s2 >> s3; n = s1.size(); for (int i = n-1; i >= 0; i--) { //cout << wynik << ' ' << curr << ' ' << i << ' '; int a = s1[i]-'0'; int b = s2[i]-'0'; int c = s3[i]-'0'; if (a + b == c) { if (carry) curr = 0; wynik += ++curr; carry = false; continue; } if (a + b == c + 10) { if (carry) curr = 0; carry = true; continue; } if (carry) { if (a + b + 1 == c) { wynik += ++curr; carry = false; continue; } if (a + b + 1 == c + 10) { continue; } } curr = 0; carry = false; } cout << wynik; return 0; } |
English