Untitled

 avatar
unknown
python
3 years ago
1.3 kB
3
Indexable
import math
import os
import re
import sys
import random

def maxHeight(wallPositions,wallHeights):
    n=len(wallPositions)
    mud_max=0
    for i in range(0,n-1):
        if wallPositions[i]<(wallPositions[i+1]-1):
            heightDiff=abs(wallHeights[i+1]-wallHeights[i])
            gapLen=wallPositions[i+1]-wallPositions[i]-1
            localMax=0
            if gapLen>heightDiff: 
                low=max(wallHeights[i+1],wallHeights[i])+1
                remainingGap=gapLen-heightDiff-1
                localMax=low+remainingGap/2
            else:
                localMax=min(wallHeights[i+1],wallHeights[i])+gapLen
            mud_max=max(mud_max,localMax)
    return int(mud_max)
if _name=='main_':
    fptr=open(os.environ['OUTPUT_PATH'],'w')
    wallPositions_count=int(input().strip())
    wallPositions=[]
    for _ in range(wallPositions_count):
        wallPositions_item=int(input().strip())
        wallPositions.append(wallPositions_item)
    wallHeights_count=int(input().strip())
    wallHeights=[]
    for _ in range(wallHeights_count):
        wallHeights_item=int(input().strip())
        wallHeights.append(wallHeights_item)
    result=maxHeight(wallPositions,wallHeights)
    fptr.write(str(result)+'\n')
    fptr.close()
Editor is loading...