Cod sursa(job #2089548)

Utilizator Sebastian27Marcu Sebastian Sebastian27 Data 16 decembrie 2017 18:09:06
Problema Matrice5 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>

using namespace std;

ifstream in("matrice5.in");
ofstream out("matrice5.out");

int const modulo = 10007;
int lgpow(int a ,int b)
{
    if(b == 0)
    {
        return 1;
    }
    else if(b == 1)
    {
        return a;
    }
    else
    {
        int result = lgpow(a , b / 2);
        if(b % 2 == 0)
        {
            return (1LL * result * result) % modulo;
        }
        else
        {
            return (1LL * result * result * a) % modulo;
        }
    }
}
int main()
{
    int n, m, k, p, t, i;
    in>>t;
    for (i=1; i<=t; i++)
    {
        in>>n>>m>>p>>k;
        int result = lgpow((k * p) % modulo , (n - 1) * (m - 1));
        result = (1LL * result * lgpow(p, n+m-1)) % modulo;
        out<<result<<'\n';
    }
    return 0;
}