首先说一下思想,输入后的格式全部转换为x<y 的形式,然后按照x升序排序,判断时有覆盖的区间则-1
1、完全覆盖 -1
2、部分覆盖 -1
3、不覆盖
#include <iostream>
#include <cstdio>
#include <algorithm>using namespace std;
struct aaa{int le;int ri;}s[110];
int n;
bool cmp(aaa a,aaa b)
{
return a.le < b.le;
}
int main()
{
int x=0;
scanf("%d",&n);
int n1=n;
for(int i=1;i<=n;i++){
int a,b;
scanf("%d%d",&a,&b);
if(a>b)swap(a,b);
s[i].le=a;
s[i].ri=b;
}
sort(s+1,s+1+n,&cmp);
aaa key=s[1];
for(int i=2;i<=n;i++){
if(key.ri >= s[i].ri)//完全覆盖
{
x++;
key = s[i];
}
else if(key.le<s[i].ri&&key.ri>s[i].le){x++;}
else key=s[i];
}
cout<<n1-x;
return 0;
}