Cod sursa(job #66249)

Utilizator peanutzAndrei Homorodean peanutz Data 17 iunie 2007 07:21:43
Problema 12-Perm Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>
#include <string.h>

#define MOD (1<<20)-1//1048576

int main()
{
	int n, i;
	int t[] = {0, 1, 2, 6, 12, 0};
	int size = 5*sizeof(int);
	freopen("12perm.in", "r", stdin);
	freopen("12perm.out", "w", stdout);

	scanf("%d\n", &n);

	for(i = 5; i <= n; ++i)
	{
		t[5] = (t[4] + t[3] + 2*(i-1)) & MOD;

		memmove(t, t+1, size);

		//if(t[4] >= MOD)
			//t[4] %= MOD;

		//if(t[3] >= MOD)
			//t[3] %= MOD;
	}

	if(n > 4)
		printf("%d\n", t[5]%MOD);
	else
		printf("%d\n", t[n]);

	fclose(stdin);
	fclose(stdout);

	return 0;
}