Pagini recente » Borderou de evaluare (job #3159420) | Borderou de evaluare (job #3162655) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #3304801)
#include <fstream>
using namespace std;
#define prim 10007
ifstream cin ("matrice5.in");
ofstream cout ("matrice5.out");
int get_value(int x,int y) {
if (y==1) return x;
int ans=get_value(x,y>>1);
ans=(ans*ans)%prim;
if (y & 1) ans=(ans*x)%prim;
return ans;
}
int main() {
int t,n,m,p,k;
cin>>t;
for (int i=1; i<=t; i++) {
cin>>n>>m>>p>>k;
cout<<(get_value((p*k)%prim,(n-1)*(m-1))*get_value(p,n+m-1))%prim<<'\n';
}
}