#include <bits/stdc++.h>
#define FAST ios_base::sync_with_stdio(false), cin.tie(NULL);
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
typedef long long ll;
int dodaj(char c1, char c2, bool dziesiatka) {
int x = c1 - 48;
int y = c2 - 48;
if(dziesiatka) return x+y+1;
return x+y;
}
int main() {
FAST
string a, b;
cin >> a >> b;
if(a.size() > b.size()) swap(a, b);
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
int dlugosc_a = (int)a.length();
int dlugosc_b = (int)b.length();
string wynik = "";
bool dziesiatka = false;
for(int i = 0; i <= dlugosc_a-1; i++) {
int w = dodaj(a[i], b[i], dziesiatka);
if(w >= 10) {
w -= 10;
dziesiatka = true;
}
else dziesiatka = false;
wynik += to_string(w);
}
for(int i = dlugosc_a; i <= dlugosc_b-1; i++) {
int w = dodaj('0', b[i], dziesiatka);
if(w >= 10) {
w -= 10;
dziesiatka = true;
}
else dziesiatka = false;
wynik += to_string(w);
}
if(dziesiatka) wynik += '1';
reverse(wynik.begin(), wynik.end());
cout << wynik << '\n';
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 58 59 60 61 62 63 64 | #include <bits/stdc++.h> #define FAST ios_base::sync_with_stdio(false), cin.tie(NULL); #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; typedef long long ll; int dodaj(char c1, char c2, bool dziesiatka) { int x = c1 - 48; int y = c2 - 48; if(dziesiatka) return x+y+1; return x+y; } int main() { FAST string a, b; cin >> a >> b; if(a.size() > b.size()) swap(a, b); reverse(a.begin(), a.end()); reverse(b.begin(), b.end()); int dlugosc_a = (int)a.length(); int dlugosc_b = (int)b.length(); string wynik = ""; bool dziesiatka = false; for(int i = 0; i <= dlugosc_a-1; i++) { int w = dodaj(a[i], b[i], dziesiatka); if(w >= 10) { w -= 10; dziesiatka = true; } else dziesiatka = false; wynik += to_string(w); } for(int i = dlugosc_a; i <= dlugosc_b-1; i++) { int w = dodaj('0', b[i], dziesiatka); if(w >= 10) { w -= 10; dziesiatka = true; } else dziesiatka = false; wynik += to_string(w); } if(dziesiatka) wynik += '1'; reverse(wynik.begin(), wynik.end()); cout << wynik << '\n'; return 0; } |
English