嘛,很水吧。。。直接二项式定理就搞定了。。。。
不然自己随便瞎推几下就搞定了。。。
#include<bits/stdc++.h>
#define MAXN 1000
using namespace std;
long long a,b,k,n,m;
long long mod = 10007;
long long cj[MAXN+5];
//求出阶乘
//逆元
//组合数
long long pow_quick(long long x,long long y){//求x的y次方
long long ans=1,zz=x;
while(y){
if(y&1)ans = (ans*zz)%mod;
y = y>>1;
zz = (zz*zz)%mod;
}
return ans%mod;
}
long long niyuan(long long x){
return pow_quick(x,mod-2)%mod;
}
long long Cal(long long x,long long y){//y中选x个
return (((cj[y]*niyuan(cj[x]))%mod)*niyuan(cj[y-x]))%mod;
}
void init(){
cj[0]=1;for(long long i=1;i<=MAXN;i++)cj[i]=(cj[i-1]*i)%mod;
}
int main(){
init();
cin>>a>>b>>k>>n>>m;
cout<<(((Cal(n,k)*pow_quick(a,n))%mod)*pow_quick(b,m))%mod<<endl;
}