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
65
66
67
68
69
70
#include <iostream>
#include <string> 
using namespace std;
long long int liczba1wtabeli1[1000000] = {};
long long int liczba1wtabeli2[1000000] = {};
long long int liczbadodana[1000000] = {};
string liczba1, liczba2;
int dlugosc1, dlugoscliczby, dlugosc2;
void doddotab(int i, bool z) {
    if (z) {
        dlugosc1--;
        for (dlugosc1; dlugosc1 >= 0; dlugosc1--) {
            liczba1wtabeli1[dlugosc1] = liczba1[dlugosc1] - 48;
        }
        dlugosc2--;
        for (dlugosc2; dlugosc2 >= 0; dlugosc2--) {
            liczba1wtabeli2[dlugosc2 + i] = liczba2[dlugosc2] - 48;
        }
    }
    else {
        dlugosc2--;
        for (dlugosc2; dlugosc2 >= 0; dlugosc2--) {
            liczba1wtabeli2[dlugosc2] = liczba2[dlugosc2] - 48;
        }
        dlugosc1--;
        for (dlugosc1; dlugosc1 >= 0; dlugosc1--) {
            liczba1wtabeli1[dlugosc1 + i] = liczba1[dlugosc1] - 48;
        }
    }
}
void dodawanieliczb(int r) {
    int y = 0;
    for (r; r >= 0; r--) {
        if (liczba1wtabeli1[r] + liczba1wtabeli2[r] < 10) {
            liczbadodana[1000000 - y] += liczba1wtabeli1[r] + liczba1wtabeli2[r];
        }
        else
        {
            liczbadodana[1000000 - y] += liczba1wtabeli1[r] + liczba1wtabeli2[r] - 10;
            liczbadodana[999999 - y] += 1;
        }
        y++;
    }

}
int main()
{
    cin >> liczba1 >> liczba2;
    dlugosc1 = liczba1.length();
    dlugosc2 = liczba2.length();
    if (dlugosc2 <= dlugosc1) {
        dlugoscliczby = dlugosc1;
        int roznica = dlugosc1 - dlugosc2;
        bool dlugosc1wieksza = true;
        doddotab(roznica, dlugosc1wieksza);
    }
    else {
        dlugoscliczby = dlugosc2;
        int roznica = dlugosc2 - dlugosc1;
        bool dlugosc1wieksza = false;
        doddotab(roznica, dlugosc1wieksza);
    }
    dodawanieliczb(dlugoscliczby);
    for (int t = 0; 1000000 >= t; t++) {
        if (liczbadodana[t] != 0 && liczbadodana[t] != -1) {
            cout << liczbadodana[t];
        }
    }
    return 0;
}