Cod sursa(job #1408991)

Utilizator atatomirTatomir Alex atatomir Data 30 martie 2015 12:50:06
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>

using namespace std;

#define maxN 105

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

class bigNumber{
    public:
        unsigned char C[maxN];
        long cnt;

        bigNumber(){
            for(long i=0;i<maxN;i++) C[i]=0;
            C[1] = 1; cnt=1;
        }
        void operator+(bigNumber& who){
            cnt = max(cnt,who.cnt);
            for(long i=1;i<=cnt;i++) C[i] += who.C[i];
            for(long i=1;i<=cnt;i++){
                C[i+1] += C[i]/100;
                C[i] %= 100;
            }
            if(C[cnt+1]) cnt++;
        }
        void write(){
            fout << 1*C[cnt] ;
            for(long i=cnt-1;i;i--) {
                if(C[i]<10) fout << ' ' << 1*C[i]; else fout << 1*C[i];
            }
        }
};

long n,i,s,d;
bigNumber nr[2];

int main()
{
    fin >> n ; fin.close();
    nr[0] = bigNumber();
    nr[1] = bigNumber();

    s=0;d=1;
    for(i=2;i<=n;i++){
        s^=1;d^=1;
        nr[d] + nr[s];
    }

    nr[d].write();
    fout.close();

    return 0;
}