Cod sursa(job #1235284)

Utilizator laurageorgescuLaura Georgescu laurageorgescu Data 29 septembrie 2014 13:32:57
Problema Matrice5 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>

using namespace std;

ifstream fin( "matrice5.in" );
ofstream fout( "matrice5.out" );

const int mod = 10007;

int exp_log( int a, int p ) {
    int sol;
    sol = 1;
    while ( p > 0 ) {
        if ( p % 2 == 1 ) {
            sol *= a;
            sol %= mod;
        }
        a *= a; a %= mod;
        p /= 2;
    }
    return sol;
}
int main() {
    int t, n, m, p, k, sol;
    fin >> t;
    for( int i = 0; i < t; ++ i ) {
        fin >> n >> m >> p >> k;
        sol = exp_log( p, n * m );
        sol *= exp_log( k, (n-1) * (m-1) );
        sol %= mod;
        fout << sol << '\n';
    }
    fin.close();
    fout.close();
}