比赛 SBOI2022暑假快乐赛① 评测结果 WWTTTTTTTT
题目名称 士兵放假了 最终得分 0
用户昵称 康尚诚 运行时间 8.124 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2022-06-25 10:03:42
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int mx=-1; 
int vis[1010];//第i个小喽啰是否被攻击过 
struct node
{
    int atk;
    char wpn;
}mst[1010];
int n,m,k;//小喽啰数量,萨博瑞斯蠕虫战斗力,小F战斗力
int dfs(int katk,int rnd,int now)//当前小k攻击力;第几次攻击;当前攻击小喽啰编号
{
//    cout<<katk<<" "<<rnd<<" "<<now<<" ";
    switch(mst[now].wpn)
    {
        case '+':katk=katk+mst[now].atk;break;
        case '-':katk=katk-mst[now].atk;break;
        case '*':katk=katk*mst[now].atk;break;
        case '/':katk=katk/mst[now].atk;break;
        default:break;
    }
//    cout<<katk<<endl;
    if(rnd==n)
    {
        mx=max(mx,katk);
        return 0;
    }
    for(int i=1;i<=n;i++)
    {
        if(vis[i]==0)
        {
            vis[i]=1;
            dfs(katk,rnd+1,i);
            vis[i]=0;
        }
    } 
    return 0;
} 
int main()
{
    freopen("holiday_and_angryF.in","r",stdin);
    freopen("holiday_and_angryF.out","w",stdout);
    memset(vis,1010,0);
    mst[0].wpn='[';
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++)
    {
        cin>>mst[i].atk>>mst[i].wpn;
    }
    dfs(k,0,0);
    if(mx>m)
    {
        cout<<"YES"<<endl;
    }
    else
    {
        cout<<"NO"<<endl;
    }
    cout<<mx;
}