79求条
查看原帖
79求条
1662833
DaiYuchen0813楼主2025/7/26 19:53

为什么这个代码能过本题,但不能过简要题意

#include<bits/stdc++.h>
using namespace std;
long long n,k,t,x,y,m[1000005],p;
struct Qj{
	long long l,r,xb;
}qj[1000005];
bool cmp(Qj a,Qj b){
	if(a.l!=b.l){
		return a.l<b.l;
	}
	return a.r<b.r;
}
priority_queue<long long,vector<long long>,greater<long long> > q;
main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n>>k;
	for(long long i=1;i<=n;i++){
		cin>>qj[i].l>>qj[i].r;
		qj[i].xb=i;
	}
	sort(qj+1,qj+1+n,cmp);
	for(long long i=1;i<=n;i++){
		q.push(qj[i].r);
		if(i>=k){
			if(i>k){
				q.pop();
			}
			if(t<(q.top()-qj[i].l)){
				x=qj[i].l;
				y=q.top();
				t=y-x;
			}
		}
	}
	cout<<t<<endl;
	for(long long i=1;i<=n;i++){
		if(qj[i].l<=x&&qj[i].r>=y&&k!=p){
			m[++p]=qj[i].xb;
		}
	}
	sort(m+1,m+1+k);
	for(long long i=1;i<=k;i++){
		cout<<m[i]<<" ";
	}
	return 0;
}
2025/7/26 19:53
加载中...