Cod sursa(job #1131637)

Utilizator alevasluialeHuhurez Marius alevasluiale Data 28 februarie 2014 22:43:15
Problema Patrate2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <fstream>

using namespace std;
ifstream fin("patrate2.in");
ofstream fout("patrate2.out");
int A[10000000];
void mul(int A[], int B)
{
      int i, t = 0;
      for (i = 1; i <= A[0] || t; i++, t /= 100000)
              A[i] = (t += A[i] * B) % 100000;
      A[0] = i - 1;
}
int main()
{
    A[++A[0]]=1;
    int n,i;
    fin>>n;
    unsigned long long p=1;
    if(n<=30)
    {
        p=1<<n;
        mul(A,p);
        mul(A,p);
    }
    else
    {
        if(n<=60)
        {
            p=1<<30;
            mul(A,p);
            mul(A,p);
            p=1<<(n-30);
            mul(A,p);
            mul(A,p);
        }
        else if(n<=90)
        {
            p=1<<30;
            mul(A,p);
            mul(A,p);
            p=1<<30;
            mul(A,p);
            mul(A,p);
            p=1<<(n-60);
            mul(A,p);
            mul(A,p);
        }
        else
        {
            p=1<<30;
            mul(A,p);
            mul(A,p);
            p=1<<30;
            mul(A,p);
            mul(A,p);
            p=1<<30;
            mul(A,p);
            mul(A,p);
            p=1<<(n-90);
            mul(A,p);
            mul(A,p);
        }
    }
    mul(A,n);
    for(i=A[0];i>=1;i--) fout<<A[i];
}