题目链接
我的代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[1000001],maxi,mini,l,r=INT_MAX;
signed main ()
{
cin>>n;
for (int i=1;i<=n;i++)
{
int x,y;
cin>>x>>y;
if (x>y) swap (x,y);
a[x+1]++,a[y+1]--;
l=max (l,y);
r=min (r,x);
}
for (int i=r;i<=l;i++)
a[i]+=a[i-1];
for (int i=r;i<=l;i++)
if (a[i]>=1) a[i]=1;
for (int i=r;i<=l;i++)
{
int t=i;
while (a[t+1]>=1) t++;
maxi=max (maxi,t-i);
i=t+1;
}
for (int i=r;i<=l;i++)
{
int t=i;
while (a[t+1]==0) t++;
mini=max (mini,t-i);
i=t+1;
}
cout<<maxi<<' '<<mini;
return 0;
}