Cod sursa(job #2089511)
Utilizator | razvan boabes razvanboabes | Data | 16 decembrie 2017 17:41:36 |
---|---|---|---|
Problema | Matrice5 | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <fstream>
using namespace std;
ifstream in("matrice5.in");
ofstream out("matrice5.out");
long long pow(long long b, long long e, long long rest)
{
long long p = 1;
while (e > 0)
{
if (e % 2)
p = p * b % rest;
b = b * b % rest;
e /= 2;
}
return p;
}
int main()
{
int t, n, m, k , p;
in >> t;
for (int i = 1; i <= t; i++)
{
in >> n >> m >> p >> k;
out << pow(k * p, (n - 1) * (m - 1), 10007) * pow(p, n + m - 1, 10007) % 10007 << '\n';
}
return 0;
}