Pagini recente » 2016.02.03-verificare | Cod sursa (job #343314) | Cod sursa (job #332368) | Istoria paginii utilizator/eudanip | Cod sursa (job #203569)
Cod sursa(job #203569)
#include<stdio.h>
int rest,nr[5];
int main(){
freopen("12perm.in","r",stdin);
freopen("12perm.out","w",stdout);
int i,n;
scanf("%d",&n);
rest=1<<20;
--rest;
if(n==1){
printf("1\n");
return 0;
}
if(n==2){
printf("2\n");
return 0;
}
if(n==3){
printf("6\n");
return 0;
}
if(n==4){
printf("12\n");
return 0;
}
nr[1]=1;
nr[2]=2;
nr[3]=6;
nr[0]=12;
for(i=5;i<=n;++i)
nr[i&3]=(nr[(i-1)&3] + nr[(i-3)&3] + ((i-2)<<1))&rest;
printf("%d\n",nr[n&3]);
fclose(stdin);
fclose(stdout);
return 0;
}