#include <bits/stdc++.h>
using namespace std;
int main () {
ios_base::sync_with_stdio(0); cin.tie(0);
string a, b, c;
cin >> a >> b >> c;
int64_t ans = 0;
int z0 = 0, z1 = 0;
for (int i = (int)a.size()-1; i >= 0; i--) {
int da = a[i] - '0';
int db = b[i] - '0';
int dc = c[i] - '0';
z0 += 1;
int nz0 = 0, nz1 = 0;
for (int k: {0, 1}) {
if (da+db+k == dc) nz0 += (k ? z1 : z0);
if (da+db+k == dc+10) nz1 += (k ? z1 : z0);
}
z0 = nz0;
z1 = nz1;
ans += z0;
}
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 | #include <bits/stdc++.h> using namespace std; int main () { ios_base::sync_with_stdio(0); cin.tie(0); string a, b, c; cin >> a >> b >> c; int64_t ans = 0; int z0 = 0, z1 = 0; for (int i = (int)a.size()-1; i >= 0; i--) { int da = a[i] - '0'; int db = b[i] - '0'; int dc = c[i] - '0'; z0 += 1; int nz0 = 0, nz1 = 0; for (int k: {0, 1}) { if (da+db+k == dc) nz0 += (k ? z1 : z0); if (da+db+k == dc+10) nz1 += (k ? z1 : z0); } z0 = nz0; z1 = nz1; ans += z0; } cout << ans << '\n'; } |
English