| 比赛 |
五一大礼包 |
评测结果 |
RRRRRRRRRR |
| 题目名称 |
国王游戏 |
最终得分 |
0 |
| 用户昵称 |
yyswys |
运行时间 |
0.074 s |
| 代码语言 |
C++ |
内存使用 |
7.54 MiB |
| 提交时间 |
2026-05-04 11:31:35 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5,mod=998244353;
int a[4],ans,c[N][N];long long f[N],res;
void init(){
c[0][0]=1;
for(int i(1);i<=1000;++i){
c[i][0]=1;
for(int j(1);j<=i;++j){
c[i][j]=(c[i-1][j-1]+c[i-1][j])%mod;
}
}
}
long long hs(long long n){
memset(f,0,sizeof(f));
f[0]=1;res=0;
for(int i(1);i<=4;++i){
res=min(res+a[i],n);
for(int j(res);j>=1;--j){
for(int k(min(j,a[i]));k>=1;--k){
f[j]=(1ll*f[j]+1ll*f[j-k]*c[j][j-k])%mod;
}
}
//--a[i];
}
return f[n];
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);int n;
cin>>n>>a[1]>>a[2]>>a[3]>>a[4];
init();
for(int i(0);i<=min(n/4,min(a[1],min(a[2],min(a[3],a[4]))));++i){
ans=(ans+((((i&1)?(-1ll):1ll)*c[n-3ll*i][i])*1ll*hs(n-4ll*i))%mod)%mod;
}
cout<<(ans+mod)%mod<<"\n";
return 0;
}