#include<bits/stdc++.h>
using namespace std;
const int offset=100010;
#define lowb(x) x&-x
int n,a[offset],s[offset*10],bit[offset*10];
void add(int x)
{
	while(x<=2*offset)
	{
		bit[x]++;
		x+=lowb(x);
	}
}
long long query(int x)
{
    long long sum=0;
    while(x>=1)
    {
    	sum+=bit[x];
    	x-=lowb(x);
	}
    return sum;
}
bool check(int x)
{
    for(int i=1;i<=2*offset;i++)
		bit[i]=0;
    s[0]=0;
    for(int i=1;i<=n;i++)
        s[i]=s[i-1]+(a[i]>=x?1:-1);
    long long sum=0;
    for(int i=0;i<=n;i++)
	{
        sum+=query(s[i]+offset);
        add(s[i]+offset);
    }
    return sum>=1ll*n*(n+1)/4;
}
int main()
{
    cin>>n;
    int l=0,r=0;
    for(int i=1;i<=n;i++)
	{
        cin>>a[i];
        r=max(r,a[i]);
    }
    while(l<=r)
	{
        int mid=(l+r)/2;
        if(check(mid))
			l=mid+1;
        else
			r=mid-1;
    }
    cout<<r<<endl;
    return 0;
}
