由于牛的个数n很小,所以我们直接可以去暴力枚举每一头牛去掉的情况
并且不用离散化,所以直接的bool数组也可以实现
但是map可以自动进行排序更加方便,这里用map实现
先将所有牛的区间进行前缀和,然后一一枚举辞掉每一头牛的情况
#include<iostream>
#include<map>
using namespace std;
typedef pair<int ,int >PII;
const int N=110;
PII g[N];
int n,res;
map<int,int >mp;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
int a,b;
cin>>a>>b;
g[i]={a,b};
mp[a]++;mp[b]--;
}
for(int i=1;i<=n;i++)
{
int x=g[i].first,y=g[i].second;
mp[x]--;mp[y]++;
int sum=0,last=-1,cnt=0;
for(auto s:mp)
{
if(last==-1)last=s.first;
cnt+=s.second;
if(cnt==0)
{
sum+=s.first-last;
last=-1;
}
}
mp[x]++;mp[y]--;
res=max(res,sum);
}
cout<<res;
return 0;
}