AcWing 无. 巧克力
原题链接
简单
作者:
Aqiw
,
2025-04-16 14:27:57
· 河北
,
所有人可见
,
阅读 4
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=100010;
struct node
{
int val,time,cnt;
}a[N];
set<int> s;
bool cmp(node a,node b)
{
if(a.val!=b.val) return a.val<b.val;
else return a.time>b.time;
}
int x,n;
signed main()
{
cin>>x>>n;
for(int i=1;i<=n;i++) cin>>a[i].val>>a[i].time>>a[i].cnt;
for(int i=1;i<=x;i++) s.insert(i);
int res=0;
int p=1;
sort(a+1,a+n+1,cmp);
while(s.size()&&p<=n)
{
while(s.size()&&a[p].cnt&&*s.begin()<=a[p].time)
{
res+=a[p].val;
auto t=s.upper_bound(a[p].time);
t--;
s.erase(t);
a[p].cnt--;
}
p++;
}
if(s.size()) cout<<-1<<endl;
else cout<<res<<endl;
return 0;
}