#include<iostream>
#include<algorithm>
using namespace std;
int n,cnt,s,t;
struct node{
int r,l;
}m[1000005];
bool cmp(node a,node b){
return a.l < b.l;
}
int main(){
cin >> s >> t >> n;
for(int i = 1;i <= n;i++){
cin >> m[i].l >> m[i].r;
}
sort(m+1,m+1+n,cmp);
for(int i = 1;i <= n && s < t;){
if(m[i].l <= s){
int maxx = -10000000000;
while(m[i].l <= s && i<=n){
maxx = max(maxx,m[i].r);i++;
}
s = maxx;
cnt++;
}else{
cout << -1;
return 0;
}
}
if(s < t){
cout << -1;
return 0;
}
cout << cnt;
return 0;
}
区间覆盖问题
最新推荐文章于 2025-05-28 22:18:33 发布