Cod sursa(job #485069)

Utilizator biroBiro Alexandru biro Data 16 septembrie 2010 22:27:33
Problema Patrate2 Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <algorithm>

using namespace std ;

int v[34] ;

int main() {
  freopen ("patrate2.in","r",stdin) ;
  freopen ("patrate2.out","w",stdout);

  int n ;
  int new_lim ;
  v[33]=1 ;

  scanf ("%d" ,&n ) ;
  int plm=1 ;
  for (int i=2 ;i<=n ;++i )
    {
      plm*=i ;
    }
  

  for (int i=1 ;i<n*n+1 ;++i ) {
    for (int j=1 ;j<=33 ;++j) {
        v[j]*=2 ;
        if (v[j]>9) {
          v[j-1]++ ;
          v[j]%=10 ;
        }
      }
  }
  for (int j=1 ;j<=33 ;++j) {
    v[j]*=plm ;
        if (v[j]>9 && v[j]<100) {
          v[j-1]+=v[j]/10 ;
          v[j]%=10 ;
        }
        if (v[j]>100 && v[j]<1000) {
          v[j-1]+=(v[j]/10)%10 ;
          v[j-2]+=v[j]/100 ;
          v[j]%=10 ;
        }
        if (v[j]>1000)  {
            v[j-1]+=(v[j]/10)%10 ;
            v[j-2]+=(v[j]/100)%10 ;
            v[j-3]+=v[j]/1000 ;
            v[j]%=10 ;
        }
  }
  for (int i=1 ;i<=33 ;++i)
    if (v[i]) {
      new_lim=i ;
      break ;
    }
      
  for (int i=new_lim ;i<=33 ;++i)
    printf ("%d" ,v[i] ) ;

  return 0 ;
}