Cod sursa(job #2018060)
Utilizator | Data | 3 septembrie 2017 13:49:19 | |
---|---|---|---|
Problema | Matrice5 | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 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;
}
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;
}