Cod sursa(job #2489490)

Utilizator Robert.BrindeaBrindea Robert Robert.Brindea Data 8 noiembrie 2019 20:29:28
Problema Patrate2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin ("patrate2.in");
ofstream fout("patrate2.out");

class h
{
public:
    int cif[4003];
    h(){};
    h(int nr)
    {
        cif[0] = 0;
        while(nr)
        {
            cif[++cif[0]] = nr%10;
            nr/=10;
        }
    }
    void print()
    {
        for(int i = cif[0]; i >= 1; i--)
            cout << cif[i];
    }
    h operator*(h a)
    {
        h res = h(0);
        res.cif[0] = a.cif[0] + cif[0];
        int t = 0;
        for(int i = 1; i <= a.cif[0]; i++)
        {
            for(int j = 1; j <= cif[0]; j++)
            {
                res.cif[i+j-1] += a.cif[i]*cif[j];
            }
        }
        for(int i = 1; i <= res.cif[0]; i++)
        {
            res.cif[i] += t;
            t = res.cif[i]/10;
            res.cif[i]%=10;
        }
        while(t)
        {
            res.cif[++res.cif[0]] = t%10;
            t/=10;
        }
        return res;
    }
};



int main()
{
    int n;
    fin >> n;
    h a = h(9);
    h b = h(30);
    h c = a*b;
    c.print();
    return 0;
}