1、第一步保证输入的时候左端点是小于又端点的
2、按右端点把所有线段排序
3、扫描整理好的线段数组 每次遇到左端点大于等于max的就记下该线段 并令max的等于该线段的右端点
#include <iostream>
#include <algorithm>
using namespace std;
struct node
{
int a,b;
};
bool cmp(node line1,node line2)
{
return line1.b < line2.b;
}
int main()
{
int n,max = -9999,count = 0;
node line[101];
cin>>n;
for(int i = 0;i < n;i++)
{
cin>>line[i].a>>line[i].b;
if(line[i].a > line[i].b)swap(line[i].a,line[i].b);
}
sort(line,line + n,cmp);
for(int i = 0;i < n;i++)
{
if(line[i].a >= max)
{
count++;
max = line[i].b;
}
}
cout<<count;
return 0;
}