Cod sursa(job #203643)
| Utilizator | Data | 18 august 2008 09:41:16 | |
|---|---|---|---|
| Problema | 12-Perm | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <stdio.h>
const int p=1048575;
int n,a[4],now,prev1,prev3,i;
int main(){
freopen("12perm.in","r",stdin);
freopen("12perm.out","w",stdout);
scanf("%d",&n);
a[0]=1;
a[1]=2;
a[2]=6;
a[3]=12;
if (n<=4) {printf("%d\n",a[n-1]);return 0;}
for (i=4;i<n;++i){
now=i&3;
prev1=(now+3)&3;
prev3=(now+1)&3;
a[now]=(a[prev1]+a[prev3]+((i-1)<<1))&p;
}
printf("%d",a[now]);
return 0;
}
