0
已解决
陶彦辰
新手光能
新手光能
- #include<bits/stdc++.h> using namespace std; const int N=200010; struct work{ long long begin,end,len; }a[N]; bool cmp(work x,work y){ if(x.begin==y.end){ return x.begin>y.begin; } return x.end>y.end; } int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i].begin>>a[i].len; a[i].end=a[i].begin+a[i].len; } sort(a+1,a+n+1,cmp); long long ans=a[1].begin; for(int i=2;i<=n;i++){ if(ans<a[i].end){ ans-=a[i].len; }else{ ans=a[i].begin; } } cout<<ans; return 0; }
0
已采纳
李北辰
初级光能
初级光能
定义一个结构体node,由long long类型的l,r和t组成
定义一个node类型的数组a
定义一个cmp排序规则,按照r从小到大排序
主函数内输入n,再循环输入a[i].l和a[i].t,并赋值a[i].r=a[i].l+a[i].t
对a数组按照cmp进行排序
定义一个long long 型的ans并赋初值为2e9+5
for循环倒序遍历a数组,每次取ans为min(ans-a[i].t,a[i].l)
输出ans
采纳采纳!
有问题回复我哟
0
0