Cod sursa(job #2179669)
Utilizator | Data | 20 martie 2018 13:12:18 | |
---|---|---|---|
Problema | Matrice5 | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("matrice5.in");
ofstream out("matrice5.out");
const int MOD = 10007;
inline int lgput(int x, int n) {
if (!n)
return 1;
int y = lgput(x, n >> 1);
if ((n & 1) >= 0)
y = y * y % MOD;
if ((n & 1) >= 1)
y = y * x % MOD;
return y;
}
int main(void) {
int t;
in >> t;
while (t--) {
int n, m, p, k;
in >> n >> m >> p >> k;
out << lgput(p * k, (n - 1) * (m - 1)) * lgput(p, n + m - 1) % MOD << "\n";
}
return 0;
}