#include<bits/stdc++.h>
using namespace std;
#define M 55000
struct line{
int hend,tail;
}num[M];
int cmp(line a,line b)
{
return a.hend==b.hend?a.tail>b.tail:a.hend<b.hend;
}
int main()
{
int ans=0;
int maxn;
int t;
cin>>t;
for(int i=0; i<t; i++){
cin>>num[i].hend>>num[i].tail;
}
sort(num,num+t,cmp);
maxn=num[0].tail;
for(int i=1; i<t; i++){
ans = max(ans,min(maxn,num[i].tail)-num[i].hend);
maxn=max(maxn,num[i].tail);
}
cout<<ans;
return 0;
}
第1行:線段的數量N(2 <= N <= 50000)。 第2 - N + 1行:每行2個數,線段的起點和終點。(0 <= s , e <= 10^9)
輸出最長重複區間的長度。
5 1 5 2 4 2 8 3 7 7 9
4