Cod sursa(job #1398024)

Utilizator stefanzzzStefan Popa stefanzzz Data 23 martie 2015 22:09:31
Problema Patrate2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <stdio.h>
#define MAXC 15000
using namespace std;

const int base = 1000000;
int n, sol[MAXC];

void multiply(int v[], int val){
	int i, r = 0;
	for(i = 1; i <= v[0] || r; i++){
		v[i] = val * v[i] + r;
		r = v[i] / base;
		v[i] %= base;
	}

	v[0] = i - 1;
}

inline int nrcifre(int x){
	int ans = 0;
	if(!x) return 1;
	while(x){
		x /= 10; ++ans;
	}
	return ans;
}

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

	scanf("%d", &n);
	sol[0] = sol[1] = 1;

	for(i = 1; i <= n * n; i++)
		multiply(sol, 2);
	for(i = 2; i <= n; i++)
		multiply(sol, i);
	
	for(i = sol[0]; i >= 1; i--){
		if(i != sol[0]){
			int nrc = 6 - nrcifre(sol[i]);
			while(nrc--)
				printf("0");
		}
		printf("%d", sol[i]);
	}
	printf("\n");

	return 0;
}