Cod sursa(job #334753)

Utilizator ProtomanAndrei Purice Protoman Data 27 iulie 2009 22:05:03
Problema 12-Perm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <algorithm>
#include <stdio.h>

using namespace std;

int n;
int rec[5];

int main()
{
	freopen("12perm.in", "r", stdin);
	freopen("12perm.out", "w", stdout);

	scanf("%d", &n);

	rec[0] = 1; rec[1] = 2; rec[2] = 6; rec[3] = 12;
	for (int i = 5; i <= n; i++)
	{
		rec[4] = (rec[3] + rec[1] + ((i - 2) << 1)) & ((1 << 20) - 1);

		for (int j = 1; j < 4; j++)
			rec[j] = rec[j + 1];
	}

	if (n > 4)
		printf("%d\n", rec[4]);
	else printf("%d\n", rec[n - 1]);

	fclose(stdin);
	fclose(stdout);
	return 0;
}