题目链接: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;
}