# PBinfo #2410 – ProdusXXL – Rezolvare C++

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

## Enunț

Cerința
Numim  număr mare un număr care conține prea multe cifre pentru a fi memorat în tipurile existente. 
Se dau două numere mari, ambele ≥0. Calculați produsul lor.

Date de intrare
Fișierul de intrare produsxxl.in conține pe prima linie numărul mare x, iar pe a doua linie numărul mare y. Pentru fiecare dintre acestea se precizeaza mai intâi numărul de cifre și apoi cifrele numărului, separate prin câte un spațiu.

Date de ieșire
Fișierul de ieșire produsxxl.out va conține pe prima linie numărul P, reprezentând produsul celor două numere mari din fișierul de intrare.

Restricții și precizări

ambele numere au cel mult 100 de cifre
cifrele produsului nu vor fi separate prin spații

Exemplu:
produsxxl.in

20 7 8 5 3 7 6 7 1 4 6 9 9 4 3 4 6 6 9 9 9
25 7 6 3 9 6 3 1 3 6 5 9 5 8 9 1 6 7 9 5 4 5 3 6 5 3
produsxxl.out

599998858371156857510752802116223611839497347
Explicație
78537671469943466999 + 7639631365958916795453653 = 599998858371156857510752802116223611839497347

## Cod sursă C++

```cpp
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("produsxxl.in");
ofstream fout("produsxxl.out");
int x[105],y[105],p[205];
int main()
{
    int n, m, l, i, j, r;
    fin>>n;
    for(i=n; i>=1; i--)
    {
        fin>>x[i];
    }
    fin>>m;
    for(i=m; i>=1; i--)
    {
        fin>>y[i];
    }
    l=n+m-1;
    for(i=1; i<=n ; i++)
    {
        for(j=1; j<=m; j++)
        {
            p[i+j-1] += x[i]*y[j];
        }
    }
    r=0;
    for(i=1; i<=l; i++)
    {
        r+=p[i];
        p[i]=r%10;
        r/=10;
    }
    while(r)
    {
        p[++l]=r;
        r=r/10;
    }
    while(l>1 && p[l]==0)
    {
        l--;
    }
    for(i=l; i>=1; i--)
    {
        fout<<p[i];
    }
    fin.close();
    fout.close();
    return 0;
}
```

## Resurse

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