#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; } |