Cod sursa(job #3209683)

Utilizator nistor_dora_valentinaNistor Dora Valentina nistor_dora_valentina Data 3 martie 2024 11:55:25
Problema Patrate2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>

using namespace std;
ifstream fin("patrate2.in");
ofstream fout("patrate2.out");
int n, i, copie;
short int a[100001], b[100001], c[100001];
void produs(short int x[], short int y[])
{
  int i,j,t=0;
  int z[10001];
  z[0]=x[0]+y[0]-1;
  for(i=1;i<=x[0]+y[0];i++)
    z[i]=0;
  for(i=1;i<=x[0];i++)
    for(j=1;j<=y[0];j++)
      z[i+j-1]+=x[i]*y[j];
  for(i=1;i<=z[0];i++)
  {
    t+=z[i];
    z[i]=t%10;
    t/=10;
  }
  if(t)
    z[++z[0]]=t;
  for(i=0;i<=z[0];i++)
    x[i]=z[i];
}
int exp(int baza, int put)
{
    b[0]=1;
    b[1]=baza;
    c[0]=c[1]=1;
    while(put)
    {
        if(put%2==1)
            produs(c, b);
        produs(b, b);
        put/=2;
    }
}
int main()
{
    fin>>n;
    a[0]=a[1]=1;
    for(i=1; i<=n; i++)
    {
        copie=i;
        b[0]=0;
        while(copie)
        {
            b[0]++;
            b[b[0]]=copie%10;
            copie/=10;
        }
        produs(a, b);
    }
    exp(2, n*n);
    produs(c, a);
    for(i=c[0]; i>=1; i--)
        fout<<c[i];
    return 0;
}