修改后在本地和洛谷IDE都能通过loj数据的代码:
```cpp
#include<bits/stdc++.h>
#pragma GCC optimize(2)
#define int long long
using namespace std;
const int mod=1e5+3;
int a,b,c,d,k,jc[3005],inv[3005];
int read(){
int f=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') w=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
f=f*10+ch-'0';
ch=getchar();
}
return f*w;
}
int qpow(int x,int y){
int ans=1;
while(y){
if(y&1) ans=ans*x%mod;
x=x*x%mod;
y>>=1;
}
return ans;
}
void init(){
jc[0]=inv[0]=1;
for(int i=1;i<=2000;i++){
jc[i]=jc[i-1]*i%mod;
inv[i]=qpow(jc[i],mod-2);
}
}
int mul(int x,int y){
return jc[x]*inv[y-1]%mod;
}
int C(int x,int y){
if(x<y) return 0;
return jc[x]*inv[y]%mod*inv[x-y]%mod;
}
int solve(){
int ans=0;
init();
for(int i=0;i<=min(a,b);i++){
for(int j=0;j<=min(c,min(d,k-i));j++){
ans=(ans+C(a,i)*mul(b,b-i+1)%mod*C(c,j)%mod*mul(d,d-j+1)%mod*C(a-i,k-i-j)%mod*mul(d-j,d-k+i+1)%mod)%mod;
}
}
return ans;
}
signed main(){
a=read(),b=read(),c=read(),d=read(),k=read();
printf("%lld\n",solve());
return 0;
}
```
by tongyf @ 2020-09-29 16:43:08