题解 P3028 【[USACO10OCT]汽水机Soda Machine】

2017-10-05 19:35:46


显然。。可以直接快排一下然后瞎搞啊。。

类似于区间差分

#include<bits/stdc++.h>
using namespace std;
int n,sum,ans;
struct lsg{int x,y;}a[2000000];
bool pd(lsg x,lsg y){return x.x<y.x||x.x==y.x&&x.y>y.y;}//快排
int main(){
    ios::sync_with_stdio(false);
    cin>>n;for (int i=1;i<=n;i++)cin>>a[i].x>>a[i+n].x,a[i].y=1,a[i+n].y=-1;//差分
    sort(a+1,a+1+n*2,pd);
    for (int i=1;i<=n*2;i++)sum+=a[i].y,ans=max(ans,sum);
    cout<<ans<<endl;
}