Pagini recente » Cod sursa (job #2230118) | Cod sursa (job #2328949) | Cod sursa (job #1481925) | Cod sursa (job #1882693) | Cod sursa (job #1839757)
#include <cstdio>
#include <algorithm>
using namespace std;
FILE *f=fopen("nunta.in","r");
FILE *g=fopen("nunta.out","w");
int V[4][30];
int N,n,CB,t;
const int BASE=100000000;
void add()
{
V[3][0]=0;
n=max(V[1][0],V[2][0]);
t=0;
for(int i=1;i<=n||t;i++)
{
V[3][i]=((i<=V[1][0] ? V[1][i]:0)+(i<=V[2][0] ? V[2][i]:0)+t);
t=V[3][i]/BASE;
V[3][i]%=BASE;
V[3][0]++;
}
}
void copiere()
{
for(int i=0;i<=V[2][0];i++)
V[1][i]=V[2][i];
for(int i=0;i<=V[3][0];i++)
V[2][i]=V[3][i];
}
int main()
{
fscanf(f,"%d",&N);
V[2][0]=V[2][1]=1;
V[3][0]=1;V[3][1]=2;
if(N<=2)
{
fprintf(g,"%d",(N==1 ? 1:2));
}
else
{
int i=3;
while(i<=N)
{
copiere();
add();
i++;
}
n=V[3][0];
for(int i=n;i>0;i--)
{
CB=BASE/10;
while(CB>10&&CB>V[3][i]&&i!=n)
{
CB/=10;
fputc('0',g);
}
fprintf(g,"%d",V[3][i]);
}
}
fclose(f);
fclose(g);
return 0;
}