比赛 2025.12.6 评测结果 TTTTTTTTTT
题目名称 分组游戏 最终得分 0
用户昵称 梦那边的没好TM 运行时间 11.009 s
代码语言 C++ 内存使用 8.83 MiB
提交时间 2025-12-06 11:32:12
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define cpy(a,b) copy(begin(a),end(a),begin(b))
#define ld long double
#define dot(x) fixed<<setprecision(x)
#define foru(a,b,c) for(ll a=b;a<=c;a++)

ll n,a[2005],ans;
vector<vector<ll>>gs;

bool check(vector<ll>g){
    ll sz=g.size();
    for(auto x:g){
        if(sz>a[x]){
            return 0;
        }
    }
    return 1;
}

void dfs(ll i){
    if(i>n){
        ans++;
        return;
    }
    ll tmp=gs.size()-1;
    foru(i,0,tmp){
        gs[i].push_back(i);
        if(check(gs[i])){
            dfs(i+1);
        }
        gs[i].pop_back();
    }
    gs.push_back({i});
    if(1<=a[i])dfs(i+1);
    gs.pop_back();
}

int main(){
    freopen("gamem.in" ,"r",stdin );
    freopen("gamem.out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
    cin>>n;
    foru(i,1,n){
        cin>>a[i];
    }
    dfs(1);
    cout<<ans%998244353;
    return 0;
}