甚至提交了12次
查看原帖
甚至提交了12次
917775
_buzhidao_楼主2024/3/31 22:03

rt

#include<bits/stdc++.h>
using namespace std;
int n;
struct far{
	int l,r;
} s[5005];
bool cmp(far x,far y){
	if(x.l==y.l) return x.r<y.r;
	return x.l<y.l;
}
int n1,l1,r1,n2,l2,r2;
int main(){
	cin>>n;
	for(int i=1;i<=n;++i){
		cin>>s[i].l>>s[i].r;
	}
	sort(s+1,s+n+1,cmp);
	for(int i=1;i<=n;++i){//计算最长连续
		if(s[i].l>r1){//间断
			n1=max(n1,r1-l1);
			l1=s[i].l;r1=s[i].r;
		}
		if(s[i].r>=r1){//延长
			r1=s[i].r;
		}
	}
	n1=max(n1,r1-l1);l2=s[1].r;r2=s[1].r;
	for(int i=2;i<=n;++i){//计算最长间断
		if(s[i].l>r2){
		    r2=s[i].l;
	        n2=max(n2,r2-l2);
	        l2=s[i].r;
		}
	}
	n2=max(n2,r2-l2);
	printf("%d %d",n1,n2);
	return 0;
}

挂在最后一个点的第二小问。
样例:8。
我:3。
狂调40min,求助!

2024/3/31 22:03
加载中...