Cod sursa(job #1200124)

Utilizator alexpetrescuAlexandru Petrescu alexpetrescu Data 21 iunie 2014 22:17:12
Problema Patrate2 Scor 80
Compilator c Status done
Runda Arhiva de probleme Marime 1.08 kb
//n!*(2^(n*n))
#include <stdio.h>
int v[8000000], aux[8000000];
inline void inmultire(int a){
    int incep, c, e, j, i, x;
    for(i=1; i<=v[0]; i++){
        aux[i]=0;
    }
    incep=0;
    x=0;
    while(a>0){
        c=a%10;
        a/=10;
        incep++;
        e=0;
        j=incep;
        i=1;
        while((e>0)||(i<=v[0])){
            if(x<j){
                x=j;
            }
            e+=v[i]*c;
            e+=aux[j];
            aux[j]=e%10;
            e/=10;
            j++;
            i++;
        }
    }
    v[0]=x;
    for(i=1; i<=v[0]; i++){
        v[i]=aux[i];
    }
}
int main(){
    int n, i;
    FILE *fin, *fout;
    fin=fopen("patrate2.in", "r");
    fout=fopen("patrate2.out", "w");
    fscanf(fin, "%d", &n);
    v[0]=1;
    v[1]=1;
    for(i=2; i<=n; i++){
        inmultire(i);
    }
    for(i=1; i<=n*n; i++){
        inmultire(2);
    }
    printf("%d", v[0]);
    for(i=v[0]; i>0; i--){
        fprintf(fout, "%d", v[i]);
    }
    fprintf(fout, "\n");
    fclose(fin);
    fclose(fout);
    return 0;
}