Pagini recente » Cod sursa (job #3194479) | Cod sursa (job #3277124) | Cod sursa (job #1153583) | Cod sursa (job #1170130) | Cod sursa (job #865019)
Cod sursa(job #865019)
#include<cstdio>
using namespace std;
const int M=(1<<20)-1;
int n,i,A,B,C,D,E;
int main()
{
freopen("12perm.in","r",stdin);
freopen("12perm.out","w",stdout);
scanf("%d",&n);
A=1; B=2; C=6; D=12;
if(n==1) {printf("%d\n",A);return 0;}
if(n==2) {printf("%d\n",B);return 0;}
if(n==3) {printf("%d\n",C);return 0;}
if(n==4) {printf("%d\n",D);return 0;}
for(i=5;i<=n;i++)
{
E=(D+B+2*(i-2))&M;
//x % (2^k) = x & (2^k-1)
//sol[i]=sol[i-1]+sol[i-3]+2*(i-2)
A=B; B=C; C=D; D=E;
}
printf("%d\n",E);
return 0;
}