Cod sursa(job #328488)

Utilizator radu_voroneanuVoroneanu Radu Stefan radu_voroneanu Data 2 iulie 2009 12:24:11
Problema 12-Perm Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>
#define modulo 1048575

int a[3];
int m,i,n,x;

int main()
{
	freopen("12perm.in","r",stdin);
	freopen("12perm.out","w",stdout);
	scanf("%ld",&n);
	a[0]=1; a[1]=2; a[2]=6; a[3]=12;
	m=n-2;
	for (i=3; i<=m; i++)
	{
		x=(i+2) & 3;
		if (x==1) a[0]=(a[3]+a[1]+i+i) & modulo;
		if (x==2) a[1]=(a[0]+a[2]+i+i) & modulo;
		if (x==3) a[2]=(a[1]+a[3]+i+i) & modulo;
		if (x==0) a[3]=(a[2]+a[0]+i+i) & modulo;
	}
	if (n<=4)
		printf("%ld\n",a[n]);
	else
		printf("%ld\n",a[(n+3) & 3]);
	fclose(stdin); fclose(stdout);
	return 0;
}