#include<bits/stdc++.h>
using namespace std;
const int N=11;
int n,m,t,ncd[N],cpy[N];
struct node{
    int ht,gl,cd;//伤害,释放时间,CD
}a[N];
void dfs(int T,int HP){//当前时间,BOOS当前血量
    if(T>=t)return;
    if(HP<=0){
        cout<<"菜就多练";
        exit(0);    
    }
    for(int i=1;i<=n;i++){
        if(ncd[i]>0)continue;
        memcpy(cpy,ncd,sizeof(ncd));
        for(int j=1;j<=n;j++)ncd[j]=max(ncd[j]-a[i].gl,0);
        ncd[i]=a[i].cd;//-a[i].gl;//
        dfs(T+a[i].gl,HP-a[i].ht);
        memcpy(ncd,cpy,sizeof(ncd));
    }
    memcpy(cpy,ncd,sizeof(ncd));
    for(int i=1;i<=n;i++) if(ncd[i]>0) ncd[i]--;
    dfs(T+1, HP);
    memcpy(ncd,cpy,sizeof(ncd));
}
int main(){
    cin>>n>>m>>t;
    for(int i=1;i<=n;i++){
        int x,y,z;
        cin>>x>>y>>z;
        a[i]={x,y,z};
    }
    dfs(0,m);
    cout<<"NO";
    return 0;
}

2 条评论

  • @ 2026-8-12 14:27:23

    何意味/🤩

    • @ 2026-5-13 21:05:05

      喵喵喵
      虽然没认真看题目但它好像不用dfs吧?

      • 1

      信息

      ID
      21780
      时间
      1000ms
      内存
      256MiB
      难度
      1
      标签
      递交数
      13
      已通过
      2
      上传者