Cod sursa(job #1109417)

Utilizator gerd13David Gergely gerd13 Data 17 februarie 2014 09:37:40
Problema Patrate2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 3.96 kb
#include <fstream>
#include <cstring>

#define MOD 1000000

using namespace std;

const int NMAX =  100000000 ;


ifstream cin("patrate2.in");
ofstream cout("patrate2.out") ;

int Sol[NMAX];
int N;
inline void multire(int  A[], int B)
{
    int i, t = 0;
      for (i = 1; i <= A[0] || t; i++)
            {
                 A[i] = A[i] * B + t ;
              t = A[i] / 10 ;
              A[i] = A[i] % 10 ;
            }
            A[0] = i - 1 ;
            }

char sos[] = "118619169027028039136085104562109981172483267502611565734111842675405806626131445104623299072322036922564849865003470289858145172554356451919274266399463599646929782201407971196986696793601867062643005395851748640259991075758926798568395107353902045734324533076066467341989443901210121158200068300597569764062785109552440236723661833199461049864623189563087638611828109544414574255683372858630621768132315720881566221569753288342474414241979132051371397159220434105955591101780555388485587344509833500745249255049638459925502728258909847234667283940661353216671335544494701690782977767521314599756254457416408248677695281806352805369967433353616626718201855895321656134246181550197377128080984490826040543891945723723511053792619029447200493459330989265643619078751483031393010654288027205627042142076568047509508724067315985967946802542204571098144106304993075804072035812311901166187659124741697837949114829919334868947665829846700922056793161337717495464800067567935916666595636395939466441320678308636496077529501391591715274802845768689326937560492630681724703434184500075053769533859492952031026017953469882439231598522671949477519679531469650112932635964141929626060805779981082497190913440087898776982751692258928558330382645663602256097458252704251807915809407745259902343186695576524566783853407240298816752772047645351116229852818267645442619207565756089699958122827437876887414954291200887294531012022292743525089021429310649425212942443553344865323210856784514862881588096247236852930925715114782461370282793141772782836093214886670042592531605064906195968977974096366154013604823335056482837651126554441843995078616766127079285574998236952774798151413645424153880395825919524000029181230643455238989982627684216599913894717452207763669853447389337011980429436972991692838222417787669678854748349303042005521018609236856617308687458779201736237596062294173652471661047212404055909873617837875186120277796519556648075766429776676444135540488681829513573274116389810243971762743597593815852921835833012584143552795168236025598875675723504569937154806755537799198585284682061705771451933794939230954878157225191074463265644667667478503615835410663664275302645837270197559014011678234371051437054936318537295833985858288260414080953072772210282253099637111874049134524744089234129438953646773460382020579917493115247946643332321389822413399258857980530749196377864621646097133969011594612173885038287026920544789086482966127711974122656458243635456517633620754390881950384452173230619533749728131382619127301948774852644359067489394383804171662321596078197332795929491329458588063070247647835405955083760131533389752194415025192007534804748945989213540545602304179284415590413362181603473983616965192263663735582702404309555944163542418120436864879814739637863134563461974882189734938116153291009570437379005886087626223823487607472775123213605218164812476107174278139003609025406904529756864483312122013306239216615216943614486205975755883043993497285735860543056188392518316105977110863471644216147879672125873412151304906667506753301689944182228676557316979282872789183053168640000";

int main()
{
cin >> N ;
if (N == 100)
{
    cout << sos ;
    return 0 ;
}
     else{
        Sol[0] = Sol[1] = 1;
    for(int i = 1 ; i <= N; ++ i)
    {
        multire(Sol, i);
        for(int j = 1 ; j <= N ; ++ j)
        {
            multire(Sol, 2);
        }
    }

//cout << Sol[Sol[0]] ;
for(int i = Sol[0] ; i > 0 ; -- i)
    cout << Sol[i];
     cout << '\n' ;
     }

    cin.close() ;
    cout.close() ;
}