全部评论 1

  • 我暴力的结果是 14个TLE ……

    2025-08-20 来自 广东

    0
    • #include <iostream>
      #include <algorithm>
      using namespace std;
      int now;
      int pre;
      struct inf{
          int price=0;
          int time;
      }k[100010];
      bool cbused(inf a){
          if(pre>a.price)
              return false;
          if(now-a.time>45)
              return false;
          return true;
      }
      bool cmp(inf a,inf b){
          if((cbused(a)&&cbused(b))||((!cbused(a))&&(!cbused(b))))
              return a.time<b.time;
          return cbused(a)>cbused(b);
      }
      int main(){
          int n;
          cin>>n;
          int sum=0;
          for(int i=0;i<n;i++){
              int x;
              cin>>x;
              if(x==0){
                  cin>>k[i].price>>k[i].time;
                  sum+=k[i].price;
              }
              else{
                  cin>>pre>>now;
                  sort(k,k+n,cmp);
                  if(cbused(k[0]))
                      k[0].price=0;
                  else
                      sum+=pre;
              }
          }
          cout<<sum;
          return 0;
      }
      

      2025-08-20 来自 广东

      0
暂无数据

提交答案之后,这里将显示提交结果~

首页