#include "bits/stdc++.h"
using namespace std;
using ll = long long;
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
string a, b, c;
cin >> a >> b >> c;
int n = (int)a.size();
ll ans = 0, cnt = 0;
int carry = 0;
for (int i = n - 1; i >= 0; i--) {
int x = a[i] - '0';
int y = b[i] - '0';
int z = c[i] - '0';
int w = x + y;
if (carry && (w + 1) % 10 == z) {
w++;
if (w >= 10) carry = 1;
else carry = 0, ans += cnt;
} else if (w % 10 == z) {
if (carry) cnt = 0;
if (w >= 10) carry = 1, cnt++;
else ans += ++cnt, carry = 0;
} else {
cnt = 0;
carry = 0;
}
}
cout << ans << '\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 | #include "bits/stdc++.h" using namespace std; using ll = long long; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); string a, b, c; cin >> a >> b >> c; int n = (int)a.size(); ll ans = 0, cnt = 0; int carry = 0; for (int i = n - 1; i >= 0; i--) { int x = a[i] - '0'; int y = b[i] - '0'; int z = c[i] - '0'; int w = x + y; if (carry && (w + 1) % 10 == z) { w++; if (w >= 10) carry = 1; else carry = 0, ans += cnt; } else if (w % 10 == z) { if (carry) cnt = 0; if (w >= 10) carry = 1, cnt++; else ans += ++cnt, carry = 0; } else { cnt = 0; carry = 0; } } cout << ans << '\n'; } |
English