Cod sursa(job #2786139)

Utilizator andrei_marciucMarciuc Andrei andrei_marciuc Data 20 octombrie 2021 13:20:54
Problema Patrate2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <stdio.h>

#define BASE 10
#define MAX 31263
#define FILES 1

int a[ MAX ];
int n;

void inmultesc( int v[], int a ) {
    long long t = 0;
    for( int i = 1; i <= v[ 0 ]; i++ ) {
        v[ i ] = v[ i ] * a + t;
        t = v[ i ] / BASE;
        v[ i ] %= BASE;
    }

    while( t ) {
        v[ ++v[ 0 ] ] = t % BASE;
        t /= BASE;
    }
}

int main()
{
    FILE *fin = fopen( "patrate2.in", "r" );
    fscanf( fin, "%d", &n );
    fclose( fin );

    int i;
    a[ ++a[ 0 ] ] = 2;
    for( i = 2; i <= n; i++ )
        inmultesc( a, i * 2 );

    int right = n * n;
    for( ; i <= right; i++ )
        inmultesc( a, 2 );

    FILE *fout = fopen( "patrate2.out", "w" );
    fprintf( fout, "%d", a[ a[ 0 ] ] );
    for( int i = a[ 0 ] - 1; i > 0; i-- ) {
       // for( int b = BASE; b / 10 > a[ i ]; b /= 10 )
         //   fprintf( fout, "0" );
        fprintf( fout, "%d", a[ i ] );
    }
    fclose( fout );
    return 0;
}