91pts#3WA求助
查看原帖
91pts#3WA求助
1287433
__ycy1124__楼主2024/10/22 07:29
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct Node{
	int l,r,len;
}a[150001];
bool cmp(Node x1,Node x2){
	return x1.r<x2.r;
}
int dp[150001];
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int n,ans=0;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].l>>a[i].r;
		a[i].len=a[i].r-a[i].l+1;
	}
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++){
		int ma=max(a[i].len,dp[i-1]);
		int l=0,r=i-1,mid,tmp;
		while(l<=r){
			mid=l+r>>1;
			if(a[mid].r<a[i].l){
				tmp=mid;
				l=mid+1;
			}
			else{
				r=mid-1;
				ans=mid-1;
			}
		}
		ma=max(ma,dp[tmp]+a[i].len);
		ans=max(ans,ma);
		dp[i]=ma;
//		cout<<dp[i]<<' ';
	}
	cout<<ans;
	return 0;
}
2024/10/22 07:29
加载中...