题目描述
zxy无聊的在纸上划着线条,队友不能容忍,于是借机给他出了一个简单的问题,让他把自己画
的n线条选择一部分摆到数轴上,且两两没有重合,然后问他最大的摆放数量k
输入
第一行为一个正整数 n;
在接下来的 n 行中,每行有 2个数 ai,bi描述每条线段。
n,ai,bi(0 < n,ai,bi ≤ 10 6 )
输出
输出一个整数,为 k的最大值。
输入样例
3
0 2
2 4
1 3
输出样例
2
#include<stdio.h>
#include<iostream>
#include<set>
#include<algorithm>
using namespace std;
struct st{
int a,b;
}p[1000005];
int cmp(st a,st b)
{
if(b.b>a.b)
return 1;
else if(b.b==a.b)
{
return a.a<b.a;
}
else
return 0;
}
int main()
{
int n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d%d",&p[i].a,&p[i].b);
sort(p,p+n,cmp);
int j=1,k=p[0].b;
for(i=1;i<n;i++)
{
if(p[i].a>=k)
{
j++;
k=p[i].b;
}
}
printf("%d\n",j);
return 0;
}