Pagini recente » Atasamentele paginii Clasament franceza | Cod sursa (job #749060) | Cod sursa (job #358052) | Cod sursa (job #433964) | Cod sursa (job #3283806)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("matrice5.in");
ofstream fout("matrice5.out");
const long long mod = 10007;
long long t, n, m, p, k;
static inline long long Put(long long a, long long n) {
long long p = 1;
while(n) {
if(n & 1) p = (p * a) % mod;
a = (a * a) % mod;
n >>= 1;
}
return p;
}
int main() {
fin >> t;
while(t--) {
fin >> n >> m >> p >> k;
fout << Put(p * k, (n - 1) * (m - 1)) * Put(p, n + m - 1) % mod << "\n";
}
return 0;
}