不知道为啥,最后一组数据(超时)说啥也过不去。
#include<iostream>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
struct qujian{
int l,r;
bool operator<(const qujian &w)const{
return l<w.l;
}
};
qujian quj[100010];
int main(){
int s,t;
cin>>s>>t;
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
cin>>quj[i].l>>quj[i].r;
}
sort(quj+1,quj+n+1);
//int res=s;不可以,若区间是1到1,不能满足
int cnt=0;
int res=-2e9;
bool isan=false;
for(int i=1;i<=n;i++){
while(i<=n&&quj[i].l<=s){
res=max(res,quj[i].r);
i++;
}
if(res<s){
cnt=-1;
break;
}
cnt++;
if(res>=t){
isan=true;
break;
}
s=res;
i--;
}
if(!isan){
cnt=-1;
}
cout<<cnt;
return 0;
}