# PBinfo #2392 – sumaxl – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerința
Numim  număr mare un număr care conține prea multe cifre pentru a fi memorat în tipurile existente, și număr mic un număr care poate fi memorat în acestea. 
Se dau două numere, unul mare și unul mic, ambele pozitive. Calculați suma lor.

Date de intrare
Fișierul de intrare sumaxl.in conține pe prima linie numărul mare x, pentru care se precizeaza mai intâi numărul de cifre și apoi cifrele sale, separate prin câte un spațiu, iar pe a doua linie numărul mic y.

Date de ieșire
Fișierul de ieșire sumaxl.out va conține pe prima linie numărul mare S, reprezentând suma celor două numere din fișierul de intrare.

Restricții și precizări

numărul mare are cel mult 100 de cifre
numărul mic este mai mic decât 1.000.000.000
cifrele numărului mic nu sunt separate prin spații
cifrele sumei nu vor fi separate prin spații

Exemplu:
sumaxl.in

20 7 8 5 3 7 6 7 1 4 6 9 9 4 3 4 6 6 9 9 9
123
sumaxl.out

78537671469943467122
Explicație
Pe prima lini a fișierului de intrare se află un număr mare cu 20 de cifre – 78537671469943466999, iar pe cea de a doua un număr mic – 123. Suma lor este 78537671469943467122.

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
using namespace std;
string prob = "sumaxl";
ifstream in(prob + ".in");
ofstream out(prob + ".out");
#define cin in
#define cout out
int mare[10001], mic[1001];
int nr1, nr2, temp, var = 0, nrcif = 1, cif;
int main() {
    cin >> nr1;
    for(int i = nr1; i >= 1; i--) cin >> mare[i];
    cin >> nr2;
    while (nr2 != 0) {
        mic[nrcif++] = nr2 % 10;
        nr2 = nr2 / 10;
    } nrcif--;
    if (nrcif > nr1) nr1 = nrcif;
    for (int i = 1; i <= nr1; i++) {
        int c = mare[i] + mic[i] + var;
        mare[i] = c % 10;
        var = c / 10;
    } if (var > 0) mare[++nr1] = var;
    for (int i = nr1; i >= 1; i--) cout << mare[i];
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/2392)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/2392/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-2392/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
