Cod sursa(job #859279)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 19 ianuarie 2013 23:47:39
Problema Castel Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <fstream>
using namespace std;
ifstream f ( "aladdin2.in" );
#define LE 10666
ofstream g ( "aladdin2.out" );
int   n, m;
#define char short int

char  V1[LE], V2[LE];
int i;
char V3[LE];
void mul ( char  A[],char val )
{
    int i, t = 0;

    for ( i = 1; i <= A[0] || t; ++i, t /= 10 )
        A[i] = ( t += A[i] * val ) % 10;

    A[0] = i - 1;
}
void add ( char A[], char B[0] )
{
    int i, t=0;

    for ( i = 1; i <= A[0] || i <= B[0] || t; t /= 10, ++i )
        A[i] = ( t += A[i] + B[i] ) % 10;

    A[0] = i - 1;
}
void scad ( char A[], char B[] )
{
    for ( i = 1; i <= A[0]; ++i )
    {
        A[i] = A[i] - B[i];

        if ( A[i] < 0 )
            A[i] += 10, A[i+1]--;
    }

    for ( ; A[A[0]] == 0 && A[0]; --A[0] );
}
int main()
{
    f >> n >> m;

    V1[0] = V1[1] = V2[0] = V2[1] = 1;

    for ( i = 1; i <= n; ++i )
        mul ( V1, 2 );

    for ( i = 1; i <= m; ++i )
        mul ( V2, 2 );

    add ( V1, V2 );
    V3[0]=1;
    V3[1]=2;

    scad(V1,V3);

    for ( i = V1[0]; i >= 1; --i )
        g << ( int ) V1[i];





    f.close();
    g.close();
    return 0;
}