Cod sursa(job #1105305)

Utilizator pop_bogdanBogdan Pop pop_bogdan Data 11 februarie 2014 18:15:02
Problema Matrice5 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
using namespace std;

ifstream is("matrice5.in");
ofstream os("matrice5.out");

#define MOD 10007
long long T,M,N,P,K;

long long LgExp(long long x, long long y);

int main()
{
    is >> T;
    for ( int i = 1; i <= T; ++i )
    {
        is >> M >> N >> P >> K;
        os << LgExp(P*K,(M-1)*(N-1))*LgExp(P,(M+(N-1)))%MOD <<'\n';
    }
    return 0;
}

long long LgExp(long long x, long long y)
{
    if ( y == 1 )
        return x%MOD;
    if ( y % 2 == 0 )
        return (LgExp(x,y/2)*LgExp(x,y/2))%MOD;
    return (x*LgExp(x,y/2)*LgExp(x,y/2))%MOD;
}