rt,萌新用贪心+堆维护了一通,结果TLE了qwq
#include<bits/stdc++.h>
using namespace std;
struct node{
int id,l,r;
}a[1000005];
priority_queue<int,vector<int>,greater<int> > q;
bool cmp(node x,node y){
return x.l<y.l;
}
int main(){
int n,k,ans=-1,cnt,t1,t2;
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i].l>>a[i].r;
a[i].id=i;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
q.push(a[i].r);
if(q.size()>k)
q.pop();
if(q.size()==k){
cnt=q.top()-a[i].l;
if(cnt>ans)
ans=cnt,t1=a[i].l,t2=q.top();
}
}
cout<<ans<<endl;
for(int i=1;i<=n;i++){
if(a[i].l<=t1&&a[i].r>=t2){
cout<<a[i].id<<" ";
k--;
}
if(k==0)
break;
}
return 0;
}
评测结果