Description
在X轴上有n个闭区间,去掉尽可能少的区间使剩下的区间都不相交
Input
多组测试数据
第一行输入n(n<=1000)
接下来n行每行两个数a,b代表闭区间的两个端点。
(a,b<=1000000)
Output
输出最小的删除的区间数
Sample Input
3
10 20
15 10
20 15
Sample Output
2
代码:
#include<bits/stdc++.h>
using namespace std;
#define maxn 1010
struct ww{
int begin;
int end;
}s[maxn];
int n;
bool cmp(ww x,ww y){
return x.end<y.end;
}
int main(){
while(~scanf("%d",&n)){
int a,b;
for(int i=0;i<n;i++){
scanf("%d %d",&a,&b);
s[i].begin=min(a,b);
s[i].end=max(a,b);
}
sort(s,s+n,cmp);
int sum=0;
int w=0;
for(int i=0;i<n;i++){
if(s[i].begin>w){
w=s[i].end;
}
else sum++;
}
cout<<sum<<endl;
}
}