0分,求hack
查看原帖
0分,求hack
1276691
chjimi楼主2024/7/20 09:29
#include<bits/stdc++.h>
#define int long long
using namespace std;
int x,n;
struct st{
    int p;
    int b;
    int num;
}a[100005];
bool cmp(st a,st b){
    if(a.b!=b.b){
        return a.b<b.b;
    }
    else{ 
        return a.p<b.p;
    }
}
signed main(){
    cin>>x>>n;
    int maxx=INT_MIN,cnt=0;
    for(int i=1;i<=n;i++){
        cin>>a[i].p>>a[i].b>>a[i].num;
        maxx=max(maxx,a[i].b);
        cnt+=a[i].num;
    }
    if(maxx<x||cnt<x){
        cout<<"-1"<<endl;
        return 0;
    }
    sort(a+1,a+n+1,cmp);
    // for(int i=1;i<=n;i++){
    //     cout<<a[i].p<<' '<<a[i].b<<' '<<a[i].num<<endl;
    // }
    int id=1,ans=0;  
    for(int i=1;i<=x;i++){
        if(a[id].b>=i&&a[id].num>0){
            ans+=a[id].p;
            a[id].num--;
        }
        else{
            id++;
            i--;
        }
        // if(id>x){
        //     cout<<"-1"<<endl;
        //     return 0;
        // }
    }
    cout<<ans<<endl;
    return 0;
}
2024/7/20 09:29
加载中...