Pagini recente » Cod sursa (job #1000107) | Cod sursa (job #6425) | Cod sursa (job #2745005) | Cod sursa (job #2684365) | Cod sursa (job #3189787)
#include <stdio.h>
#include <stdlib.h>
#define MAX 400000
#define MOD 1000000000000000
unsigned long long v[MAX];
int main()
{
FILE *fin, *fout;
int n, i, a, l, l1, j;
unsigned long long t, p;
fin = fopen("patrate2.in", "r");
fscanf(fin, "%d", &l);
fclose(fin);
n = v[0] = 1;
l1 = l * l;
for (j = 0; j < l1; j++) {
t = i = 0;
while (i < n || t > 0) {
t += 2 * v[i];
v[i] = t % MOD;
t /= MOD;
i++;
}
if (i > n) {
n = i;
}
}
for (a = 2; a <= l; a++) {
t = i = 0;
while (i < n || t > 0) {
t += a * v[i];
v[i] = t % MOD;
t /= MOD;
i++;
}
if (i > n) {
n = i;
}
}
fout = fopen("patrate2.out", "w");
fprintf(fout, "%llu", v[n - 1]);
for (i = n - 2; i >= 0; i--) {
if (v[i] == 0) {
p = MOD / 10;
while (p > 0) {
fputc('0', fout);
p /= 10;
}
} else {
p = MOD / 10;
while (p > v[i]) {
fputc('0', fout);
p /= 10;
}
fprintf(fout, "%llu", v[i]);
}
}
fclose(fout);
return 0;
}