Cod sursa(job #215430)

Utilizator alex_mircescuAlex Mircescu alex_mircescu Data 18 octombrie 2008 17:26:08
Problema Patrate2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>
#include <math.h>

long v[10100], max = 5000;

#define baza 10000000

void mul(long a) {
	long i;
	v[5001] = 0;
	for (i = 5000; i >= max - 1; --i) {
		v[i] *= a;
		v[i] += v[i + 1] / baza;
		v[i + 1] %= baza;
		if (v[i] > 0 && i < max) {
			--max;
		}
	}
}

int main() {
	long i, n;
	freopen("patrate2.in", "r", stdin);
	freopen("patrate2.out", "w", stdout);
	scanf("%ld",&n);
	v[5000] = 1;
	for (i = 1; i <= n; ++i) {
		mul(i);
	}
	for (i = 1; i <= n * n; ++i) {
		mul(2);
	}
	for (i = 1; i <= 5000; ++i) {
		if (v[i]) {
			printf("%ld", v[i]);
			break;
		}
	}
	for (i = i + 1; i <= 5000; ++i) {
		printf("%07ld", v[i]);
	}
	return 0;
}