Pagini recente » Cod sursa (job #711140) | Cod sursa (job #3219325) | Cod sursa (job #788169) | Cod sursa (job #2044841) | Cod sursa (job #1465887)
#include<cstdio>
using namespace std;
int t,k,m,n,p,f1,f2;
int rp(int a,int b)
{
a=a%10007;
int nr;
if(b==1) return a%10007;
if(b%2==0)
{
nr=rp(a,b/2);
return nr*nr%10007;
}
else
{
nr=rp(a,b/2);
return ((nr*nr)%10007)*a%10007;
}
}
int main()
{
freopen("matrice5.in","r",stdin);
freopen("matrice5.out","w",stdout);
scanf("%d",&t);
for(int i=1;i<=t;++i)
{
scanf("%d%d%d%d",&n,&m,&p,&k);
if(m==n&&m==1) printf("%d\n",p);
else if(m==1) printf("%d\n",rp(p,n)*rp(k,n-1)%10007);
else if(n==1) printf("%d\n",rp(p,m)*rp(k,m-1)%10007);
else {
f1=rp(p,m*n);
f2=rp(k,(m-1)*(n-1));
printf("%d\n",f1*f2%10007);
}
}
return 0;
}