0
已解决
曹博扬
初级天翼
初级天翼
#include<iostream>
#include<string>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,c,st1=-1,st2=-1;
struct f{
int x,y;
}a[10010];
bool cmp(f a,f b){
if(a.y!=b.y)
return a.y<b.y;
return a.x<b.x;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i].x>>a[i].y;
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
if(a[i].x<st1){
if(a[i].x>=st2){
st2=a[i].y;
c++;
}
}else{
st1=a[i].y;
c++;
}
}
cout<<c+1;
return 0;
}
0
已采纳
张恩泽
高级天翼
高级天翼
循环里的if(a[i].x < st1)改成if(a[i].x >= xt1),因为他是可以无缝衔接的,正如汪宇航所说
然后如果满足说的if可以直接累加
第一个if里面的if则是另外一种条件,满足也可以直接累加
最后一个else不要了
最最重要的一点是要判断如果st1小于st2,就交换st1和st2,用swap
最后直接输出c即可
0
0
0
0