Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
3312 未知用户 整数区间 C++ 通过 100 0 MS 264 KB 939 2019-12-15 18:45:35

Tests(3/3):


#include<iostream> using namespace std; int a[10001],b[10001],sum=0,n,m; void qsort(int x,int y) //多关键字快排 { int i,j,mid1,mid2,t; i=x;j=y;mid1=b[(x+y)/2];mid2=a[(x+y)/2]; while(i<=j) { while(b[i]<mid1||((b[i]==mid1)&&(a[i]<mid2))) ++i; while(b[j]>mid1||((b[j]==mid1)&&(a[j]>mid2))) --j; if(i<=j) { t=b[j];b[j]=b[i];b[i]=t; t=a[j];a[j]=a[i];a[i]=t; ++i; --j; } } if(x<j) qsort(x,j); if(i<y) qsort(i,y); } int main() { cin>>n; for(int i=1;i<=n;++i)cin>>a[i]>>b[i]; qsort(1,n); for(int i=1,x=-1;i<=n;++i) //在初始化循环变量的同时,初始化x。 //令x=-1可以使第一个区间与其他区间的操作相同。 { if (x>=a[i]) continue; //如果当前区间包含标记点,就跳过。 ++sum; x=b[i]; //更新标记点。 } cout<<sum<<endl; return 0; }


测评信息: