暴力代码能拿20pts,开了数组反而WA一片
#include<bits/stdc++.h>
#define int long long
using namespace std;
int x,n,tot;
struct node{
int pri,day,num;
bool operator<(const node &rhs) const{
if(rhs.pri==pri)
return rhs.day<day;
return rhs.pri<pri;
}
}szx[100005];
priority_queue<node> pq;
signed main(){
cin>>x>>n;
for(int i=1;i<=n;i++){
cin>>szx[i].pri>>szx[i].day>>szx[i].num;
pq.push(szx[i]);
}
int ans=0;int u=1;bool ok=0;
for(int i=1;i<=x;i++){
if(u>n){
cout<<-1<<endl;
ok=1;
break;
}
if((szx[u].day>=i)&&(--szx[u].num>=0))
ans+=szx[u].pri;
else{
i--;
u++;
}
}
if(!ok) cout<<ans<<endl;
return 0;
}