Cod sursa(job #636988)

Utilizator Fetita_JucausaFetita Buclucasa Fetita_Jucausa Data 20 noiembrie 2011 09:03:10
Problema Matrice5 Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.71 kb
#include <cstdio>
using namespace std;

#define MOD 10007

int T,N,M,P,K;

inline int lg_put (int N,int K)
{
    int rez;

    for (rez=1; K; K>>=1)
    {
        if (K&1)
            rez=(rez*N)%MOD;
        N=(N*N)%MOD;
    }

    return rez;
}

int main ()
{
    freopen ("matrice5.in","r",stdin);
    freopen ("matrice5.out","w",stdout);

    scanf ("%d",&T);
    for (int i=0; i<T; ++i)
    {
        scanf ("%d%d%d%d",&N,&M,&P,&K);
        if (N==1 && M==1)
            printf ("%d\n",(P*K)%MOD);
        else if (N==1 || M==1)
            printf ("0\n");
        else
            printf ("%d\n",(lg_put (P*K,(N-1)*(M-1))*lg_put (P,N*M-(N-1)*(M-1)))%MOD);
    }

    return 0;
}