#include <stdio.h>
#include<limits.h>
/*
void update_val(int seg [] , int low ,int high , int index , int diff, int pos)
{
int mid;
if(index<low||index>high)
return;
seg[pos] = seg[pos]+diff;
if(high!=low)
{
mid = (low+high)/2;
update_val(seg,low,mid,index,diff,2*pos+1);
update_val(seg,mid+1,high,index,diff,2*pos+2);
}
}
*/
int min(int a, int b)
{
return a>b ?b:a;
}
int max(int a, int b)
{
return a>b ?a:b;
}
void constructTree(int arr [] , int seg[] , int low, int high , int pos)
{
int mid;
if(low==high)
{
seg[pos]=arr[low];
return;
}
mid = (low+high)/2;
constructTree(arr,seg,low,mid,2*pos+1);
constructTree(arr,seg,mid+1,high,2*pos+2);
seg[pos] = min(seg[2*pos+1],seg[2*pos+2]);
}
void newconstructTree(int arr [] , int newseg[] , int low, int high , int pos)
{
int mid;
if(low==high)
{
newseg[pos]=arr[low];
return;
}
mid = (low+high)/2;
newconstructTree(arr,newseg,low,mid,2*pos+1);
newconstructTree(arr,newseg,mid+1,high,2*pos+2);
newseg[pos] = max(newseg[2*pos+1],newseg[2*pos+2]);
}
int newrangeQuery(int newseg[],int qlow , int qhigh , int low , int high , int pos)
{
if(qlow<=low && qhigh>=high)
{
return newseg[pos];
}
if(qlow>high || qhigh <low)
{
return INT_MIN;
}
int mid = (low+high)/2;
return max(newrangeQuery(newseg,qlow,qhigh,low,mid,2*pos+1),newrangeQuery(newseg,qlow,qhigh,mid+1,high,2*pos+2));
}
int rangeQuery(int seg[],int qlow , int qhigh , int low , int high , int pos)
{
if(qlow<=low && qhigh>=high)
{
return seg[pos];
}
if(qlow>high || qhigh <low)
{
return INT_MAX;
}
int mid = (low+high)/2;
return min(rangeQuery(seg,qlow,qhigh,low,mid,2*pos+1),rangeQuery(seg,qlow,qhigh,mid+1,high,2*pos+2));
}
int main(void) {
// your code goes here
int arr[100010];
int n,minimum,k,max1,max2,max3;
float newmax,newmax2;
int i,diff,l,r,q;
int seg[300040]={0};
int newseg[300040]={0};
for(i=0;i<n;i++)
{
}
constructTree(arr,seg,0,n-1,0);
/*
for(i=0;i<63;i++)
{
printf("%d ",seg[i]);
}
printf("\n");
*/
newconstructTree(arr,newseg,0,n-1,0);
for(k=0;k<q;k++)
{
max1=max2=max3=-1;
minimum = rangeQuery(seg,l,r,0,n-1,0);
//printf("%d\n",minimum);
if(l-1>=0)
{
max1 =newrangeQuery(newseg,0,l-1,0,n-1,0);
}
if(r+1<=n-1)
{
max2 =newrangeQuery(newseg,r+1,n-1,0,n-1,0);
}
newmax = (float)(max(max1,max2)+minimum);
max3 = newrangeQuery(newseg,l,r,0,n-1,0);
newmax2 = minimum+(max3-minimum)/2.0;
if(newmax2>newmax)
{
}
else
{
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlPGxpbWl0cy5oPgovKgp2b2lkIHVwZGF0ZV92YWwoaW50IHNlZyBbXSAsIGludCBsb3cgLGludCBoaWdoICwgaW50IGluZGV4ICwgaW50IGRpZmYsIGludCBwb3MpCnsKCWludCBtaWQ7CglpZihpbmRleDxsb3d8fGluZGV4PmhpZ2gpCglyZXR1cm47CglzZWdbcG9zXSA9IHNlZ1twb3NdK2RpZmY7CglpZihoaWdoIT1sb3cpCgl7CgkJbWlkID0gKGxvdytoaWdoKS8yOwoJCXVwZGF0ZV92YWwoc2VnLGxvdyxtaWQsaW5kZXgsZGlmZiwyKnBvcysxKTsKCQl1cGRhdGVfdmFsKHNlZyxtaWQrMSxoaWdoLGluZGV4LGRpZmYsMipwb3MrMik7Cgl9Cn0KKi8KaW50IG1pbihpbnQgYSwgaW50IGIpCnsKCXJldHVybiBhPmIgP2I6YTsKfQppbnQgbWF4KGludCBhLCBpbnQgYikKewoJcmV0dXJuIGE+YiA/YTpiOwp9CnZvaWQgY29uc3RydWN0VHJlZShpbnQgYXJyIFtdICwgaW50IHNlZ1tdICwgaW50IGxvdywgaW50IGhpZ2ggLCBpbnQgcG9zKQp7CglpbnQgbWlkOwoJaWYobG93PT1oaWdoKQoJewoJCXNlZ1twb3NdPWFycltsb3ddOwoJCXJldHVybjsKCX0KCW1pZCAgPSAobG93K2hpZ2gpLzI7Cgljb25zdHJ1Y3RUcmVlKGFycixzZWcsbG93LG1pZCwyKnBvcysxKTsKCWNvbnN0cnVjdFRyZWUoYXJyLHNlZyxtaWQrMSxoaWdoLDIqcG9zKzIpOwoJc2VnW3Bvc10gPSBtaW4oc2VnWzIqcG9zKzFdLHNlZ1syKnBvcysyXSk7Cn0Kdm9pZCBuZXdjb25zdHJ1Y3RUcmVlKGludCBhcnIgW10gLCBpbnQgbmV3c2VnW10gLCBpbnQgbG93LCBpbnQgaGlnaCAsIGludCBwb3MpCnsKCWludCBtaWQ7CglpZihsb3c9PWhpZ2gpCgl7CgkJbmV3c2VnW3Bvc109YXJyW2xvd107CgkJcmV0dXJuOwoJfQoJbWlkICA9IChsb3craGlnaCkvMjsKCW5ld2NvbnN0cnVjdFRyZWUoYXJyLG5ld3NlZyxsb3csbWlkLDIqcG9zKzEpOwoJbmV3Y29uc3RydWN0VHJlZShhcnIsbmV3c2VnLG1pZCsxLGhpZ2gsMipwb3MrMik7CgluZXdzZWdbcG9zXSA9IG1heChuZXdzZWdbMipwb3MrMV0sbmV3c2VnWzIqcG9zKzJdKTsKfQppbnQgbmV3cmFuZ2VRdWVyeShpbnQgbmV3c2VnW10saW50IHFsb3cgLCBpbnQgcWhpZ2ggLCBpbnQgbG93ICwgaW50IGhpZ2ggLCBpbnQgcG9zKQp7CglpZihxbG93PD1sb3cgJiYgcWhpZ2g+PWhpZ2gpCgl7CgkJcmV0dXJuIG5ld3NlZ1twb3NdOwoJfQoJaWYocWxvdz5oaWdoIHx8IHFoaWdoIDxsb3cpCgl7CgkJcmV0dXJuIElOVF9NSU47Cgl9CglpbnQgbWlkID0gKGxvdytoaWdoKS8yOwoJcmV0dXJuIG1heChuZXdyYW5nZVF1ZXJ5KG5ld3NlZyxxbG93LHFoaWdoLGxvdyxtaWQsMipwb3MrMSksbmV3cmFuZ2VRdWVyeShuZXdzZWcscWxvdyxxaGlnaCxtaWQrMSxoaWdoLDIqcG9zKzIpKTsKCQp9CmludCByYW5nZVF1ZXJ5KGludCBzZWdbXSxpbnQgcWxvdyAsIGludCBxaGlnaCAsIGludCBsb3cgLCBpbnQgaGlnaCAsIGludCBwb3MpCnsKCWlmKHFsb3c8PWxvdyAmJiBxaGlnaD49aGlnaCkKCXsKCQlyZXR1cm4gc2VnW3Bvc107Cgl9CglpZihxbG93PmhpZ2ggfHwgcWhpZ2ggPGxvdykKCXsKCQlyZXR1cm4gSU5UX01BWDsKCX0KCWludCBtaWQgPSAobG93K2hpZ2gpLzI7CglyZXR1cm4gbWluKHJhbmdlUXVlcnkoc2VnLHFsb3cscWhpZ2gsbG93LG1pZCwyKnBvcysxKSxyYW5nZVF1ZXJ5KHNlZyxxbG93LHFoaWdoLG1pZCsxLGhpZ2gsMipwb3MrMikpOwoJCn0KaW50IG1haW4odm9pZCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJaW50IGFyclsxMDAwMTBdOwoJaW50IG4sbWluaW11bSxrLG1heDEsbWF4MixtYXgzOwoJZmxvYXQgbmV3bWF4LG5ld21heDI7CglpbnQgaSxkaWZmLGwscixxOwoJaW50IHNlZ1szMDAwNDBdPXswfTsKCWludCBuZXdzZWdbMzAwMDQwXT17MH07CglzY2FuZigiJWQiLCZuKTsKCWZvcihpPTA7aTxuO2krKykKCXsKCQlzY2FuZigiJWQiLCZhcnJbaV0pOwoJfQoJY29uc3RydWN0VHJlZShhcnIsc2VnLDAsbi0xLDApOwogICAgLyoKCWZvcihpPTA7aTw2MztpKyspCgl7CgkJcHJpbnRmKCIlZCAiLHNlZ1tpXSk7Cgl9CglwcmludGYoIlxuIik7CgkqLwoJbmV3Y29uc3RydWN0VHJlZShhcnIsbmV3c2VnLDAsbi0xLDApOwoJc2NhbmYoIiVkIiwmcSk7Cglmb3Ioaz0wO2s8cTtrKyspCgl7CglzY2FuZigiJWQlZCIsJmwsJnIpOwoJbWF4MT1tYXgyPW1heDM9LTE7CgltaW5pbXVtID0gcmFuZ2VRdWVyeShzZWcsbCxyLDAsbi0xLDApOwoJLy9wcmludGYoIiVkXG4iLG1pbmltdW0pOwoJaWYobC0xPj0wKQoJewoJbWF4MSA9bmV3cmFuZ2VRdWVyeShuZXdzZWcsMCxsLTEsMCxuLTEsMCk7Cgl9CglpZihyKzE8PW4tMSkKCXsKCW1heDIgPW5ld3JhbmdlUXVlcnkobmV3c2VnLHIrMSxuLTEsMCxuLTEsMCk7IAoJfQoJCXByaW50ZigiJWRcbiIsbWF4MSk7CgkJcHJpbnRmKCIlZFxuIixtYXgyKTsKCQluZXdtYXggPSAoZmxvYXQpKG1heChtYXgxLG1heDIpK21pbmltdW0pOwoJCXByaW50ZigiJWZcbiIsbmV3bWF4KTsKCW1heDMgPSBuZXdyYW5nZVF1ZXJ5KG5ld3NlZyxsLHIsMCxuLTEsMCk7CgkJcHJpbnRmKCIlZFxuIixtYXgzKTsKCQluZXdtYXgyID0gbWluaW11bSsobWF4My1taW5pbXVtKS8yLjA7CgkJaWYobmV3bWF4Mj5uZXdtYXgpCgkJewoJCQlwcmludGYoIiUuMWZcbiIsbmV3bWF4Mik7CgkJfQoJCWVsc2UKCQl7CgkJCXByaW50ZigiJS4xZlxuIixuZXdtYXgpOwoJCX0KCX0KCQoJcmV0dXJuIDA7Cn0K