Cod sursa(job #955817)

Utilizator razvan9310FMI - Razvan Damachi razvan9310 Data 1 iunie 2013 16:00:41
Problema Ciuperci Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#define mod 666013
using namespace std;

void T(const long long &n, long long &t)
{
    if (n == 1)
    {
        t = 1;
        return;
    }
    if (n == 2)
    {
        t = 2;
        return;
    }

    long long t1, t2;
    if (n&1 == 0)
    {
        T(n-1, t1); T(n-1, t2);
        t = (t1*t2/4)%mod;
    }
    else
    {
        T(n/2, t1); T(n/2-1, t2);
        t = (2*t1*t2)%mod;
    }
}

int main()
{
    ifstream in("ciuperci.in");
    ofstream out("ciuperci.out");

    int Q, i;
    long long n, t;
    in>>Q;
    for (i=0; i<Q; ++i)
    {
        in>>n;
        T(n, t);
        out<<t<<"\n";
    }

    in.close(); out.close();
    return 0;
}