Cod sursa(job #1131631)

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

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