Pagini recente » Rezultatele filtrării | Cod sursa (job #2381826) | Cod sursa (job #3130510) | Istoria paginii newsletter/2007-01-18 | Cod sursa (job #636942)
Cod sursa(job #636942)
#include<stdio.h>
#define MOD 10007
long long z=MOD;
long long put(long long x,long long y)
{
long long w;
if(y==1)
return x;
else if(y%2==0)
{
w=put(x,y/2);
return (w*w)%z;
}
else
{
w=put(x,y-1)%z;
return (w*x)%z;
}
}
int N;
int main()
{
freopen("matrice5.in","r",stdin);
freopen("matrice5.out","w",stdout);
int x,y,w,e;
scanf("%d",&N);
for(int i=1;i<=N;++i)
{
scanf("%d%d%d%d",&x,&y,&w,&e);
if(x!=1&&y!=1)
printf("%d\n",(put(w*e,(x-1)*(y-1)))*put(w,x*y-(x-1)*(y-1))%MOD);
else if(x==1)
{
printf("%d\n",(put(x-1,w*e)*w)%MOD);
}
else
{
printf("%d\n",(put(y-1,w*e)*w)%MOD);
}
}
}