听灌佬多,求调!
  • 板块灌水区
  • 楼主我是歌者
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/25 16:22
  • 上次更新2024/11/25 19:37:45
查看原帖
听灌佬多,求调!
566190
我是歌者楼主2024/11/25 16:22

P1668

#include<bits/stdc++>
using namespace std;
int n,m;
struct cow{
	int l;
	int r;
}arr[100100];
bool cmp(cow a,cow b){
	if(a.l!=b.l) return a.l<b.l;
	else return (a.r-a.l+1)>(b.r-b.l+1);
}
bool cmp2(cow a,cow b){
	if(a.l!=b.l) return a.l<b.l;
	else return (a.r-a.l+1)<(b.r-b.l+1);
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>arr[i].l>>arr[i].r;
	}
	sort(arr+1,arr+n+1,cmp);
	if(arr[1].l>1){
		cout<<-1;
		return 0;
	}
	int t=arr[1].r;
	sort(arr+1,arr+1+n,cmp2);
	if(arr[n].r<m){
		cout<<-1;
		return 0;
	}
	int ans=1;
	for(int i=1;i<=n;i++){
		if(t>=m){
			cout<<ans;
			return 0;
		}
		if(arr[i].l<=t+1){
			if(arr[i].r>=m){
				cout<<ans+1;
				return 0;
			}
			if(!(arr[i+1].l<=t+1 && i+1<=n)){
				t=arr[i].r;
				ans++;
			}
		}
		else{
			cout<<-1;
			return 0;
		}
	}
	return 0;
}

72分

2024/11/25 16:22
加载中...