Cod sursa(job #2291486)
Utilizator | Usurelu Florian-Robert usureluflorian | Data | 28 noiembrie 2018 08:35:44 |
---|---|---|---|
Problema | Matrice5 | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <bits/stdc++.h>>
using namespace std;
ifstream f ("matrice5.in");
ofstream g ("matrice5.out");
const int mod=10007;
int t,n,m,p,k;
int put(int a,int b)
{
int usu=1,p2=a%mod;
for(int i=0;(1<<i)<=b;++i)
{
if(((1<<i)&b)) usu=(usu*p2)%mod;
p2=(p2*p2)%mod;
}
return usu;
}
int main()
{
f>>t;
while(t--)
{
f>>n>>m>>p>>k;
g<<(put(p*k,(n-1)*(m-1))*put(p,n+m-1))%mod<<'\n';
}
return 0;
}