Cod sursa(job #674774)
Utilizator | Gavrila Vlad GavrilaVlad | Data | 6 februarie 2012 18:52:23 |
---|---|---|---|
Problema | Matrice5 | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <cstdio>
using namespace std;
#define mod 10007
int t, n, m, p, k;
int lgput(int nr, int exp)
{
if(exp==0)
return 1;
int aux=lgput(nr, exp/2);
if(exp%2==1)
return (1LL*aux*aux*nr)%mod;
return (aux*aux)%mod;
}
int main()
{
freopen("matrice5.in", "r", stdin);
freopen("matrice5.out", "w", stdout);
scanf("%d", &t);
while(t--)
{
scanf("%d%d%d%d", &n, &m, &p, &k);
printf("%d\n", lgput((p*k)%mod, (n-1)*(m-1))*lgput(p, n+m-1)%mod);
}
return 0;
}