now code——處女座的期末復習
阿新 • • 發佈:2019-01-29
quest 否則 題目 一行 bsp bool 需要 nod sin
題目描述
快要期末考試了,處女座現在有n門課程需要考試,每一門課程需要花ai小時進行復習,考試的起始時間為bi,處女座為了考試可以不吃飯不睡覺,處女座想知道他能否復習完所有的科目(即在每一門考試之前復習完該科目)。每一門課的考試時間都為兩小時。
輸入描述:
第一行一個整數n
第二行n個整數a1,a2,…,an,表示每門課需要復習的時間
第三行n個整數b1,b2,…,bn,表示每門課考試的時間
1<=n<=105
0<=ai<=109 0<=bi<=109輸出描述:
如果處女座能復習完,輸出”YES”,否則輸出”NO”示例1
輸入
復制3 0 1 1 2 6 4
輸出
復制YES
說明
在0-1小時復習第2門課,
在1-2小時復習第3門課,
在2-4小時考第1門課,
在4-6小時考第3門課,
在6-8小時考第2門課
備註:
考試時不能復習,保證考試時間不會重疊。
復習可以拆開,只要復習時間夠了即可。
#include <bits/stdc++.h> #define ll long long using namespace std; struct node{ int time,test; }a[100005]; bool cmp(node x,node y){ return x.test<y.test; } intmain() { int n; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&a[i].time); } for(int i=0;i<n;i++){ scanf("%d",&a[i].test); } sort(a,a+n,cmp); int timesum=a[0].test-a[0].time,sign=0; for(int i=1;i<n;i++){ if(timesum<a[i].time){ sign=1; break; } else{ timesum+=(a[i].test-a[i-1].test-2); timesum-=a[i].time; } } if(sign){ cout<<"NO"<<endl; }else{ cout<<"YES"<<endl; } return 0; }
now code——處女座的期末復習