Pagini recente » Clasament buzdugan_caut_maner | Diferente pentru winter-challenge-2020 intre reviziile 3 si 4 | Diferente pentru problema/robo intre reviziile 2 si 20 | Cod sursa (job #2922081) | Cod sursa (job #3304551)
#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e4 + 7;
long long fp(long long x, long long y)
{
long long ans = 1;
while(y)
{
if((y & 1))
ans = (ans * x) % MOD;
y = (y >> 1);
x = (x * x) % MOD;
}
return ans;
}
int main()
{
freopen("matrice5.in", "r", stdin);
freopen("matrice5.out", "w", stdout);
int t;
cin >> t;
while(t--)
{
long long n, m, k, p;
cin >> n >> m >> p >> k;
cout << (fp((p * k % MOD), ((n - 1) * (m - 1) % MOD)) * fp(p, n + m - 1)) % MOD << "\n";
}
}