Pagini recente » Cod sursa (job #3162487) | Cod sursa (job #102883) | Profil irina_barbu29 | Cod sursa (job #92952) | Cod sursa (job #2947464)
#include<bits/stdc++.h>
using namespace std;
const int NMAX=405,buffsize=1<<13,MOD=1e4+7;
typedef long long ll;
ofstream fout("matrice5.out");
FILE* fin;
char buff[buffsize];
int buffpos=buffsize;
int read(){
if(buffpos==buffsize) fread(buff,1,buffsize,fin),buffpos=0;
int n=0;
while(buff[buffpos]<'0' || buff[buffpos]>'9'){
++buffpos;
if(buffpos==buffsize) fread(buff,1,buffsize,fin),buffpos=0;
}
while(buff[buffpos]>='0' && buff[buffpos]<='9'){
n=(n<<1)+(n<<3)+(buff[buffpos]^48);
++buffpos;
if(buffpos==buffsize) fread(buff,1,buffsize,fin),buffpos=0;
}
return n;
}
ll binPow(ll x, ll y){
ll ans=1;
for(;y;y>>=1,x=x*x%MOD)
if(y&1)
ans=ans*x%MOD;
return ans;
}
void tc(){
ll n=read(),m=read(),p=read(),k=read();
fout<<binPow(p*k,(n-1)*(m-1))*binPow(p,n+m-1)%MOD<<'\n';
}
int main(){
fin=fopen("matrice5.in","r");
ll t=read(); while(t--)
tc();
return 0;
}