题目背景
快 noip 了,yyy 很紧张!
题目描述
现在各大 oj 上有 nn 个比赛,每个比赛的开始、结束的时间点是知道的。
yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。
所以,他想知道他最多能参加几个比赛。
由于 yyy 是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加 22 个及以上的比赛。
输入格式
第一行是一个整数 nn ,接下来 nn 行每行是 22 个整数 a_{i},b_{i}ai,bi ( a_{i}<b_{i}ai<bi ),表示比赛开始、结束的时间。
输出格式
一个整数最多参加的比赛数目。
输入输出样例
输入 #13 0 2 2 4 1 3输出 #1
2
说明/提示
对于 20\%20% 的数据, n \le 10n≤10。
对于 50\%50% 的数据, n \le 10^3n≤103。
对于 70\%70% 的数据, n \le 10^{5}n≤105。
对于 100\%100% 的数据, 1\le n \le 10^{6}1≤n≤106 , 0 \le a_{i} < b_{i} \le 10^60≤ai<bi≤106。
1 #include<bits/stdc++.h> 2 using namespace std; 3 struct game{ 4 int start; 5 int end; 6 }g[1000000]; 7 bool cmp(game a,game b){ 8 return a.end<b.end; 9 } 10 int main(){ //P1803 凌乱的yyy / 线段覆盖 11 int n,finish=0,ans=0; 12 cin>>n; 13 for(int i=0;i<n;i++){ 14 cin>>g[i].start>>g[i].end; 15 } 16 sort(g,g+n,cmp); 17 for(int i=0;i<n;i++){ 18 if(finish<=g[i].start){ 19 ans++; 20 finish=g[i].end; 21 } 22 } 23 cout<<ans; 24 return 0; 25 }
标签:10,le,比赛,int,线段,yyy,game,P1803 From: https://www.cnblogs.com/geyang/p/16842452.html