#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
using namespace std;
multimap<int,int> mymultimap;
multimap<int,int>::iterator it;
pair<multimap<int,int>::iterator,multimap<int,int>::iterator> ret;
void tournament(int st,int end,int s[])
{
if(st<end)
{
int mid=(st+end)/2;
tournament(st,mid,s);
tournament(mid+1,end,s);
if(s[st]<s[mid+1])
{
mymultimap.insert (pair<int,int>(s[mid+1],s[st]));
s[st]=s[mid+1];
}
else
mymultimap.insert (pair<int,int>(s[st],s[mid+1]));
}
}
int tour(int s[])
{
tournament(0,7,s);
ret=mymultimap.equal_range(s[0]);
it=ret.first;
int max=(*it).second;
it--;
for(;it!=ret.second;++it)
{
if(it->second>max)
max=it->second;
}
return max;
}
int main()
{
int i,s[]={3,7,1,4,2,8,5,6};
cout<<tour(s);
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNzdGRpbz4KI2luY2x1ZGU8Y3N0cmluZz4KI2luY2x1ZGU8bWFwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbXVsdGltYXA8aW50LGludD4gbXltdWx0aW1hcDsKbXVsdGltYXA8aW50LGludD46Oml0ZXJhdG9yIGl0OwpwYWlyPG11bHRpbWFwPGludCxpbnQ+OjppdGVyYXRvcixtdWx0aW1hcDxpbnQsaW50Pjo6aXRlcmF0b3I+IHJldDsKCnZvaWQgdG91cm5hbWVudChpbnQgc3QsaW50IGVuZCxpbnQgc1tdKQp7CmlmKHN0PGVuZCkKewppbnQgbWlkPShzdCtlbmQpLzI7CnRvdXJuYW1lbnQoc3QsbWlkLHMpOwp0b3VybmFtZW50KG1pZCsxLGVuZCxzKTsKaWYoc1tzdF08c1ttaWQrMV0pCnsKbXltdWx0aW1hcC5pbnNlcnQgKHBhaXI8aW50LGludD4oc1ttaWQrMV0sc1tzdF0pKTsKc1tzdF09c1ttaWQrMV07Cn0KZWxzZQpteW11bHRpbWFwLmluc2VydCAocGFpcjxpbnQsaW50PihzW3N0XSxzW21pZCsxXSkpOwp9Cn0KCmludCB0b3VyKGludCBzW10pCnsKdG91cm5hbWVudCgwLDcscyk7CnJldD1teW11bHRpbWFwLmVxdWFsX3JhbmdlKHNbMF0pOwppdD1yZXQuZmlyc3Q7CmludCBtYXg9KCppdCkuc2Vjb25kOwppdC0tOwpmb3IoO2l0IT1yZXQuc2Vjb25kOysraXQpCnsKaWYoaXQtPnNlY29uZD5tYXgpCm1heD1pdC0+c2Vjb25kOwp9CnJldHVybiBtYXg7Cn0KCmludCBtYWluKCkKewppbnQgaSxzW109ezMsNywxLDQsMiw4LDUsNn07CmNvdXQ8PHRvdXIocyk7CnJldHVybiAwOwp9