Cod sursa(job #880966)

Utilizator TudorMTudor Moldovanu TudorM Data 17 februarie 2013 16:01:02
Problema Nunta Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<cstdio>
#include<cstring>
using namespace std;
FILE *f=fopen("nunta.in","r");
FILE *g=fopen("nunta.out","w");
int n, p, q, a[1000], b[1000], c[1000], r, t, i, j;
int main()
{
	fscanf(f,"%d",&n);
	p=q=1;
	a[1]=1;
	b[1]=2;
	r=2;
	if(n<=3)fprintf(g,"%d",n);
	else
	{
		while(r<n)
		{
			if(p<q)
			{
				for(i=p+1;i<=q;i++)
					a[i]=0;
			}
			p=q;
			t=0;
			for(i=1;i<=q;i++)
			{
				c[i]=(a[i]+b[i]+t)%10;
				t=(a[i]+b[i]+t)/10;
			}
			if(t>0)c[++q]=t;
			r=q;
			r++;
			memcpy(a,b,sizeof(int)*(q+1));
			memcpy(b,c,sizeof(int)*(r+1));
			p=q;
			q=r;
		}
		fprintf(g,"%d",c[r]);
	}
		fclose(f);
		fclose(g);
		return 0;
}