Pagini recente » baia_mare_b4 | Cod sursa (job #620996) | Monitorul de evaluare | Cod sursa (job #2730672) | Cod sursa (job #1745345)
#include <cstdio>
#define BAZA 10000
#define MAXCIF 20000
int dp[2][MAXCIF];
int nr[2];
inline int getmax(int a,int b){
if(a<b) return b;
return a;
}
int main(){
FILE*fi,*fout;
int n,i,j,t;
fi=fopen("nunta.in" ,"r");
fout=fopen("nunta.out" ,"w");
fscanf(fi,"%d" ,&n);
if(n==1)
fprintf(fout,"1");
if(n==2)
fprintf(fout,"2");
if(n>2){
dp[1][0]=1;
dp[0][0]=2;
nr[0]=1;
nr[1]=1;
for(i=3;i<=n;i++){
t=0;
for(j=0;j<getmax(nr[i&1],nr[1-i&1])||t>0;j++){
t=t+dp[i&1][j]+dp[1-i&1][j];
dp[i&1][j]=t%BAZA;
t/=BAZA;
}
nr[i&1]=j;
}
fprintf(fout,"%d" ,dp[n&1][nr[n&1]-1]);
for(i=nr[n&1]-2;i>=0;i--){
if(dp[n&1][i]<10)
fprintf(fout,"000");
if(dp[n&1][i]<100)
fprintf(fout,"00");
if(dp[n&1][i]<1000)
fprintf(fout,"0");
fprintf(fout,"%d" ,dp[n&1][i]);
}
}
fclose(fi);
fclose(fout);
return 0;
}