Cod sursa(job #2018061)

Utilizator stefan_creastaStefan Creasta stefan_creasta Data 3 septembrie 2017 13:50:20
Problema Matrice5 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <cstdio>
using namespace std;
const int MOD = 10007;
long long int r2p(int x, int n)
{
    long long int sol = 1;
    long long int a = x;
    while(n > 0) {
        if(n % 2 == 1) {
            sol *= a;
            sol %= MOD;
        }
        n /= 2;
        a *= a;
        a %= MOD;
    }
    return sol;
}

int main()
{
    int T, n, m, k, p;
    freopen("matrice5.in","r",stdin);
    freopen("matrice5.out","w",stdout);
    scanf("%d", &T);
    for(int q = 0;q < T; ++q) {
        scanf("%d%d%d%d", &n, &m, &p, &k);
        printf("%lld\n", (r2p(k, (n - 1) * (m - 1)) * r2p(p, n * m)) % MOD);
    }
    return 0;
}