Cod sursa(job #2021129)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 12 septembrie 2017 18:52:43
Problema Nunta Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <cstdio>

using namespace std;
char v[2][209];
short cf[2];
void adun (int s){
    int i,t=0,pls;
    for (i=0;i<cf[s];i++){
        v[s][i]+=v[1-s][i]+t;
        t=v[s][i]/10;
        v[s][i]%=10;
    }
    pls=0;
    for (i=cf[s];i<cf[1-s];i++){
        v[s][i]=v[1-s][i]+t;
        t=v[s][i]/10;
        v[s][i]%=10;
        pls++;
    }
    cf[s]+=pls;
    while (t>0){
        cf[s]++;
        v[s][cf[s]-1]=t%10;
        t/=10;
    }
}
int main()
{
    FILE *fin=fopen ("nunta.in","r");
    FILE *fout=fopen ("nunta.out","w");
    int n,i,t;
    fscanf (fin,"%d",&n);
    if (n<=2){
        fprintf (fout,"%d",n);
        return 0;
    }
    v[0][0]=1;
    v[1][0]=2;
    cf[0]=1;
    cf[1]=1;
    t=0;
    for (i=3;i<=n;i++){
        adun (t);
        t=1-t;
    }
    t=1-t;
    for (i=cf[t]-1;i>=0;i--)
        fputc (v[t][i]+'0',fout);
    return 0;
}