题意翻译
个任务,完成一个任务需要
秒,需要在
秒前内完成(可以压线完成,即完成的时间正好是
)。问是否能完成全部任务,如果能,输出
,否则输出
。
看看,一道傻逼题
只要排序(时间紧的排前面)就行了
CODE:
#include<bits/stdc++.h>
using namespace std;
int n,tim;
struct node {
int time,end;//耗时和结束时间
} a[200010];
bool cmp(node x,node y) {//时间紧的排前面
if(x.end == y.end) return x.time < y.time;
return x.end < y.end;
}
int main() {
cin>>n;
for(int i=1; i<=n; i++) cin>>a[i].time>>a[i].end;
sort(a+1,a+n+1,cmp);
for(int i=1; i<=n; i++) {
tim+=a[i].time;//不能一心二用,一次只能完成一件事
if(tim>a[i].end) {//如果超时了
cout<<"No"<<endl;
return 0;
}
}
cout<<"Yes"<<endl;
return 0;
}
谢谢!