alg2025/src/2/P1313.cpp
2025-02-07 14:36:24 +08:00

37 lines
675 B
C++

#include <cstdint>
#include <iostream>
using ll = int64_t;
constexpr ll maxk = 1e3,P=10007;
ll C[maxk+5][maxk+5],a,b,k,n,m;
ll mult(ll const&a,ll const&b){
return a*b%P;
}
ll qpow(ll b,ll e){
ll r{1};
while(e){
if(e&1)r=r*b%P;
b=b*b%P;
e/=2;
}
return r;
}
#define PV(v){std::cout<<#v<<" :"<<(v)<<"\n";}
int main(){
std::cin>>a>>b>>k>>n>>m;
for(ll i{0};i<=maxk;i++){
C[i][0]=C[i][i]=1;
for(ll j{1};j<i;j++){
C[i][j]=(C[i-1][j]+C[i-1][j-1])%P;
}
}
// PV(C[k][m])
// PV(qpow(a, n))
// PV(qpow(b, m))
std::cout<<mult(mult(C[k][m], qpow(a, n)), qpow(b, m))<<'\n';
}