//Copyright(c)2018 Mstdream
#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int N=200010;
int t[N],a[N],b[N],n;
void add(int x){
	for(;x<=2*n;x+=x&-x)t[x]++;
}
int qry(int x){
	int ret=0;
	for(;x;x-=x&-x)ret+=t[x];
	return ret;
}
bool check(int x){
	x++;
	LL ret=0;
	for(int i=1;i<=2*n;i++)t[i]=0;
	for(int i=1;i<=n;i++){
		b[i]=(a[i]>=x?1:-1);
		b[i]+=b[i-1];
		add(b[i-1]+n);
		ret+=qry(b[i]+n);
	}
	ret=(LL)n*(n+1)/2-ret;
	return ret>=((LL)n*(n+1)/2+2)/2;
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++)scanf("%d",&a[i]);
	int l=1,r=1e9+1;
	while(l!=r){
		int mid=l+r>>1;
		if(check(mid))r=mid;
		else l=mid+1;
	}
	cout<<l<<endl;
}
