Codeforces Round #506 (Div. 3)

C. Maximal Intersection

题意:删去某个集合,使得所有集合的相交部分最大,求此最大相交部分的大小

错误原因:题意理解错

set和multiset

题解

运用multiset的自动排序功能以及多重集的性质

 

#include<bits/stdc++.h>
#define maxn 300005
using namespace std;
#define ll long long
multiset<ll> stl,str;
ll L[maxn],R[maxn];
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>L[i]>>R[i];
        stl.insert(L[i]);
        str.insert(R[i]);
    }
    ll ans=0;
    for(int i=1;i<=n;i++)
    {
        stl.erase(stl.find((L[i])));
        str.erase(str.find((R[i])));
        ans=max(ans,(*str.begin()-*stl.rbegin()));
        stl.insert(L[i]);
        str.insert(R[i]);
    }
    cout<<ans<<endl;
}
View Code

 

posted @ 2018-08-25 14:55  LLbinGG  阅读(75)  评论(0编辑  收藏  举报