#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
string num1, num2, result;
cin >> num1 >> num2 >> result;
ll rest = 0;
ll current_sequence = 0;
ll score = 0;
for (int c = num1.size() - 1; c >= 0; c--)
{
ll n1 = num1[c] - '0';
ll n2 = num2[c] - '0';
ll r = result[c] - '0';
if ((n1 + n2 + rest) % 10 == r)
{
rest = (n1 + n2 + rest) / 10;
if (rest == 0)
{
current_sequence++;
}
}
else if ((n1 + n2) % 10 == r)
{
score += ((1 + current_sequence) * current_sequence / 2);
current_sequence = 0;
rest = (n1 + n2) / 10;
if (rest == 0)
{
current_sequence++;
}
}
else
{
score += ((1 + current_sequence) * current_sequence / 2);
current_sequence = 0;
rest = 0;
}
}
score += ((1 + current_sequence) * current_sequence / 2);
cout << score << endl;
}
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 | #include <bits/stdc++.h> using namespace std; using ll = long long; int main() { ios::sync_with_stdio(0); cin.tie(0); string num1, num2, result; cin >> num1 >> num2 >> result; ll rest = 0; ll current_sequence = 0; ll score = 0; for (int c = num1.size() - 1; c >= 0; c--) { ll n1 = num1[c] - '0'; ll n2 = num2[c] - '0'; ll r = result[c] - '0'; if ((n1 + n2 + rest) % 10 == r) { rest = (n1 + n2 + rest) / 10; if (rest == 0) { current_sequence++; } } else if ((n1 + n2) % 10 == r) { score += ((1 + current_sequence) * current_sequence / 2); current_sequence = 0; rest = (n1 + n2) / 10; if (rest == 0) { current_sequence++; } } else { score += ((1 + current_sequence) * current_sequence / 2); current_sequence = 0; rest = 0; } } score += ((1 + current_sequence) * current_sequence / 2); cout << score << endl; } |
English