比赛 五一大礼包 评测结果 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;
}