Cod sursa(job #178779)

Utilizator drag0shSandulescu Dragos drag0sh Data 15 aprilie 2008 09:25:45
Problema 12-Perm Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <stdio.h>
FILE *f,*g;
long t[5][3000],n,i,j,ini,ant1,ant3,r;
int main(){
   f=fopen("12perm.in","r");
    g=fopen("12perm.out","w");
    fscanf(f,"%ld",&n);
    t[1][1]=1;t[2][1]=2;t[3][1]=6;t[4][1]=2;t[4][2]=1;
    t[1][0]=1;
    t[2][0]=1;
    t[3][0]=1;
    t[4][0]=2;
//    fprintf(g,"%d",n);
    for(j=5;j<=n;j++){
                       if(j%4==0)ini=4;
                           else ini=j%4;      
                      ant1=ini-1;
                      ant3=ini+1;
                      if(ant1==0)ant1=4;
                      if(ant3==5)ant3=1;
                   //   fprintf(g,"%d*",ant1);
                      for(i=1,r=2*(j-2); i<=t[ant1][0]||r||i<=t[ant3][0] ; i++,r/=10){
                                                                          r+=t[ant1][i]+t[ant3][i];
                                                                          t[ini][i]=r%10;
                                                                         }
                      t[ini][0]=i-1;
                      }
   ini=n%4;
   if(ini==0)ini+=4;
   for(i=t[ini][0];i>=1;i--)fprintf(g,"%ld",t[ini][i]); 
   fclose(f);
   fclose(g);
    return 0;
}