Cod sursa(job #72698)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 15 iulie 2007 00:31:59
Problema Patrate2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<fstream.h>
long a[10000],b[10000],c[1000000],N,nr,nr1;
void egalite(long nr){
for (long i=0;i<nr+50;i++)
 b[i]=c[i];
}
void inmultire(){
for (long ww=0;ww<nr+nr1+30;ww++)
  c[ww]=0;
for (long i=0;i<nr1;i++){
  int t=0;
 for (long j=0;j<nr;j++){
     c[j+i]+=b[j]*a[i]+t;
     t=c[j+i]/10;
     c[j+i]=c[j+i]%10;}
 if (t>0)
    c[nr++]=t; }
}
int main(){
ifstream fin("patrate2.in");
ofstream fout("patrate2.out");
fin>>N;
if (N==1)
fout<<2<<"\n";
else{
b[0]=2;
nr=1;
for (long i=0;i<N*N-1;i++){
int t=0;
for (long j=0;j<nr;j++){
    b[j]=2*b[j]+t;
    t=b[j]/10;
    b[j]=b[j]%10;}
if (t>0){
b[nr]=t;
nr++;}}

a[0]=2;
nr1=0;
for (long y=2;y<=N;y++){
long x=y;
nr1=0;
while (x>0){
a[nr1++]=x%10;
x/=10;}
inmultire();
egalite(nr);
}
long g=nr*2+1;
while (c[g]==0)
  g--;
 for (long p=g;p>=0;p--)
   fout<<b[p];
fout<<"\n";    }
fin.close();
fout.close();
return 0;
}