题目链接:https://ac.nowcoder.com/acm/contest/327/J
按考试时间排一下序,只要复习的时间在这科的考试时间之前结束就行...(比赛的时候写了个假代码过了,然后赛后被自己cha了)
AC代码:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct Node{
int x,y;
}Edge[100005];
int n;
bool cmp(Node a,Node b){
return a.y < b.y;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&Edge[i].x);
}
for(int j=1;j<=n;j++){
scanf("%d",&Edge[j].y);
}
int ans = 0;
sort(Edge+1,Edge+1+n,cmp);
for(int i=1;i<=n;i++){
ans += Edge[i].x;
if(ans > Edge[i].y){
puts("NO");
return 0;
}
ans += 2;
}
puts("YES");
return 0;
}