Cod sursa(job #2947464)

Utilizator andu2006Alexandru Gheorghies andu2006 Data 26 noiembrie 2022 09:42:48
Problema Matrice5 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<bits/stdc++.h>

using namespace std;
const int NMAX=405,buffsize=1<<13,MOD=1e4+7;
typedef long long ll;
ofstream fout("matrice5.out");
FILE* fin;
char buff[buffsize];
int buffpos=buffsize;
int read(){
    if(buffpos==buffsize) fread(buff,1,buffsize,fin),buffpos=0;
    int n=0;
    while(buff[buffpos]<'0' || buff[buffpos]>'9'){
        ++buffpos;
        if(buffpos==buffsize) fread(buff,1,buffsize,fin),buffpos=0;
    }
    while(buff[buffpos]>='0' && buff[buffpos]<='9'){
        n=(n<<1)+(n<<3)+(buff[buffpos]^48);
        ++buffpos;
        if(buffpos==buffsize) fread(buff,1,buffsize,fin),buffpos=0;
    }
    return n;
}
ll binPow(ll x, ll y){
    ll ans=1;
    for(;y;y>>=1,x=x*x%MOD)
        if(y&1)
            ans=ans*x%MOD;
    return ans;
}
void tc(){
    ll n=read(),m=read(),p=read(),k=read();
    fout<<binPow(p*k,(n-1)*(m-1))*binPow(p,n+m-1)%MOD<<'\n';
}
int main(){
    fin=fopen("matrice5.in","r");
    ll t=read(); while(t--)
        tc();
    return 0;
}