比赛 寒假集训2 评测结果 ATTTT
题目名称 UNO 最终得分 20
用户昵称 张雨晴 运行时间 4.510 s
代码语言 C++ 内存使用 71.74 MiB
提交时间 2026-02-25 11:11:12
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[4];
int ans;
void dfs(int k){
    a[k]--;
    if(a[1]==0&&a[2]==0&&a[3]==0){
        ans++;
        ans%=998244353;
        a[k]++;
        return ;
    }
    a[k]++;
    for(int i=0;i<=1;i++){
        if(i==0){//左 
            if(a[k%3+1]!=0){
                a[k]--;
                dfs(k%3+1);
                a[k]++;
            }
        }else{//右 
            if(k==1){
                if(a[3]!=0){
                    a[k]--;
                    dfs(3);
                    a[k]++;
                }
            }else{
                if(a[k-1]!=0){
                    a[k]--;
                    dfs(k-1);
                    a[k]++;
                }
            } 
        }
    }
    return ;
}
signed main(){
    freopen("UNO.in","r",stdin);
    freopen("UNO.out","w",stdout);
    
    cin>>a[1]>>a[2]>>a[3];
    if(a[1]!=0) dfs(1);
    if(a[2]!=0) dfs(2);
    if(a[3]!=0) dfs(3);
    cout<<ans;
    return 0;
}