诶,国庆节玩了四天吧,几乎并没有干和学习有关的事233。
5号开始做noip历年提高组的题,回想自己去年和前年多么的弱,哎。。
要是当时能看出前年D1T2是tarjan裸题的话,初三就是一等了233。
算了,今年继续努力吧。
来刷刷水题。
类似中位数的一种做法,然后让区间和为0,做前缀和就好了。
学习学习结构体的重载。
慢呀。
#include<bits/stdc++.h>
#define N 50000
using namespace std;
struct cow{
int ind,val;
cow(int a=0,int b=0){
ind=a; val=b;
}
cow operator + (const cow &o){
return cow(ind+o.ind,val);
}
bool operator < (const cow &o)const{
return val<o.val;
}
}A[N+5],f[N+5];
int n,mx;
int main()
{
freopen("in.txt","r",stdin);
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d%d",&A[i].ind,&A[i].val);
sort(A+1,A+n+1);
for(int i=1;i<=n;i++)if(A[i].ind==0)A[i].ind=-1;
f[0]=(0,0);
for(int i=1;i<=n;i++)f[i]=A[i]+f[i-1];
for(int i=0;i<=n;i++)
for(int j=i+1;j<=n;j++)
if(f[j].ind-f[i].ind==0)mx=max(mx,A[j].val-A[i+1].val);
cout<<mx;
return 0;
}