Cod sursa(job #236460)

Utilizator alex_mircescuAlex Mircescu alex_mircescu Data 27 decembrie 2008 17:17:53
Problema 12-Perm Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include <stdio.h>
#include <math.h>

long d[8], n, i, aux;

int main() {
	freopen("12perm.in", "r", stdin);
	freopen("12perm.out", "w", stdout);
	scanf("%ld", &n);
	d[1] = 1, d[2] = 2, d[3] = 6, d[4] = 12;
	if (n <= 4) {
		printf("%ld\n", d[n]);
		return 0;
	}
	long MOD = 1 << 20;
	for (i = 5; i <= n; ++i) {
		aux = d[4];
		d[4] = (d[4] + d[2] + 2 * (i - 2)) % MOD;
		d[1] = d[2];
		d[2] = d[3];
		d[3] = aux;
	}
	printf("%ld\n", d[4]);
	return 0;
}