Pentru această operație este nevoie să te autentifici.

Cod sursă (job #131468)

Utilizator avatar P_ERROR Pangratie Andrei P_ERROR IP ascuns
Problemă 2sah (clasele 11-12) Compilator cpp | 1,06 kb
Rundă Arhiva de probleme Status evaluat
Dată 10 mar. 2015 08:58:47 Scor 30
#include <bits/stdc++.h>

using namespace std;

const int MOD = 100003;

void nextT( int &t1, int &t2, int &t3 ){

    int aux = (t1 + t2 + t3) % MOD;
    t1 = t2;
    t2 = t3;
    t3 = aux;
}

int exp3( int n ){
    long long e = 3;
    long long k = 1;

    while( n ){
        if( n & 1 )
            k = ( k * e ) % MOD;

        e = ( e * e ) % MOD;
        n = ( n >> 1 );
    }

    return k;
}

int main()
{
    ifstream f("2sah.in");
    ofstream g("2sah.out");

    int p;
    int n, k;

    f >> p >> n >> k;

    int t1 = 1;
    int t2 = 1;
    int t3 = 2;

    nextT( t1, t2, t3 );

    if( p == 1 ){
        g << exp3( k - 1 ) << endl;
    }
    else
    {
        int k2 = n - k;

        if( k2 == 0 )
            g << t1 << endl;
        else if( k2 == 1 )
            g << t2 << endl;
        else if( k2 == 2 )
            g << t3 << endl;
        else{
            for( int i = 2 ; i <= k2 ; i++ )
                nextT( t1, t2, t3 );

            g << t3 << endl;
        }
    }

    return 0;
}