提交时间:2019-11-09 17:25:42
运行 ID: 2148
#include<bits/stdc++.h> using namespace std; struct range { int from,to; //from开始,to结束 }a[10000]; bool cmp(range x,range y) //按结束排序 { return x.to<y.to; } int main() { int n,i,sum=0; cin>>n; for(i=0;i<n;i++) cin>>a[i].from>>a[i].to; sort(a,a+n,cmp); int x; for(i=0,x=-1;i<n;i++) //初始x的值,保证当下永远小于任意左端点 { //令x=-1可以使第一个区间与其他区间的操作相同。 if(x>=a[i].from) continue; //判断上一个右端点是否大于左端点,如果大于则则肯定包含标记号 x=a[i].to; //更新标记点 sum++; } cout<<sum; return 0; }