Cod sursa(job #1109418)

Utilizator gerd13David Gergely gerd13 Data 17 februarie 2014 09:39:41
Problema Patrate2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 3.97 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[] = "23173474663254891290550059077742986275349076812221250293140833921867204391488735016324105772404329905880918100803664934022414012954735817974143095006631129238509017314294097275781970808117391676393848183083079200187181812258973928778928026021672769065480895594755921244454405684549296698859703540349512837815216342346396206593228508767717623903643086784285276773713440385970454253387109672400181063693775219848653899730281642644083491459435431463778133632436552647625084887499950215154960580863173144267994823048397917912127025882142040716766631039624036710892330487392639357095303022755172127128143708504117829307912298936088146396725714954949135113594132959646948070418939571343436515767937146301843440497819467109823334998751528580758807368257542242153476027043248055409220329805208481146522857470935780786738300517006438522567377113560089469584880899114102972447479759014392520907009855921535313887347097725577174918375970773075549144526590251523408253799374647155095510817395521018422365817468504615673659255956259154885463490655932533891975755405675093976218538417032420995528647851229060087143038704623772660003767677226885089833235376602010360859111209180485371986959424216281430852671964405811036647905128867941522794180210324694295944067089214556690721379624105298247798298846111194478751950035843628110778730688161820941160813175463974447132706079208939356466464765450049164970846145967492250702359203916410101314626858656774251841394332702221069930740719462546587413419176229637762264841407437082323894937082880475101470489160069863383927805212538323592562265345864891268375516695063349206770260547747191676462837737728378517212564751502568988733292983458307769119171584077295215454477740867249326256176960177272752563335212497474342765707492378296794819537642194142820193572071531711443276897274199049800817244232851254057777165514307254060440275181899027282631821619334039638082132236340462653089704614281240813257228787021669598012198066871995971339726200424372033132557491594371446507777548853260996562604480704119373340634469658207477782804869149808879855082673047334123716978908141961473530694027535570052988909809328190525042029976429043579747561285813181386350825644118227447934425512246358525726953905671145518787343071663300957317048118440523220515332760974612416124955889520610606972956618417482688076671348706916399700202084620368658510303100790431743752554589254073873955559305105453087602157582247371440787223587322613373424215889171797400317965952146566975658455241320631031590294981223164425874638554207823265713330343641307002351391400577315766915876754154346811445724375539855159144006676077942426714798773619897690074455670675452109122836736340374114700765050292843507531804198794335317332910547359574920732108800511364803039329294298169566716337628692889050701713271300064921426299745857283775401614676332831007893180004483906775760049732934287742551373719449544951873133424129835062165273949976556403340826140310609595544996592111316480052937724976213355753478043998122394650847702964335431736183759831004554660758404722464166975809971599553489828577280000000000000000000000";
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() ;
}