Educational Codeforces Round 27 C
题意:给出一些节目的播放区间,问有2个电视的你是否可以看完全部节目,不可重合
思路:模拟
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 struct node{ 5 int l,r; 6 }a[200005]; 7 bool cmp(node p,node q){ 8 return p.l<q.l; 9 } 10 int main(){ 11 int n; 12 cin>>n; 13 for(int i=1;i<=n;i++){ 14 scanf("%d%d",&a[i].l,&a[i].r); 15 } 16 sort(a+1,a+1+n,cmp); 17 int l1=a[1].r,l2; 18 int y; 19 for(int i=2;i<=n;i++){ 20 if(a[i].l<=l1){ 21 l2=a[i].r;y=i;break; 22 } 23 else l1=a[i].r; 24 } 25 26 for(int i=y+1;i<=n;i++){ 27 if(a[i].l>l1){ 28 l1=a[i].r; 29 } 30 else if(a[i].l>l2){ 31 l2=a[i].r; 32 } 33 else { 34 cout<<"NO"<<endl;return 0; 35 } 36 } 37 cout<<"YES"<<endl; 38 return 0; 39 }