Problem p03187 (python)

Fixed submission:
import sys
from collections import deque
l,n=map(int,input().split())
c=n
tree1=[int(i) for i in sys.stdin]
reversed_tree1=[l-i for i in reversed(tree1)]
tree=deque(tree1)
reversed_tree=deque(reversed_tree1)
if n%2 == 0:
  ans= sum(tree1)*2 + l*(n-1) +tree1[n//2] - sum(tree1[n//2:])*4
  ans2= sum(reversed_tree1)*2 + l*(n-1) +reversed_tree1[n//2] - sum(reversed_tree1[n//2:])*4
  n-=1
  c-=1
  ans3= ans-tree.popleft()*2-l+tree[n//2]*2
  ans= max(ans,ans3)
  ans4= ans2-reversed_tree.popleft()*2-l+(reversed_tree[n//2])*2
  ans2= max(ans2,ans4)
else:
  ans= sum(tree1)*2 + l*(n-1) - tree1[n//2] - sum(tree1[((n//2)+1):])*4
  ans3=ans
  ans2= sum(reversed_tree1)*2 + l*(n-1) - reversed_tree1[n//2] - sum(reversed_tree1[((n//2)+1):])*4
  ans4=ans2
for i in range(n//2):
  n-=1
  ans_stack= ans3-tree.popleft()*2-l+tree[(n-1)//2]+tree[(n+1)//2]
  ans= max(ans_stack,ans)
  ans3=ans_stack
  n-=1
  ans_stack= ans3-tree.popleft()*2-l+tree[n//2]*2
  ans=max(ans_stack,ans)
  ans3=ans_stack
n=c
for i in range(n//2):
  n-=1
  ans_stack= ans4-reversed_tree.popleft()*2-l+reversed_tree[(n-1)//2]+reversed_tree[(n+1)//2]
  ans2=max(ans_stack,ans2)
  ans4=ans_stack
  n-=1
  ans_stack= ans4-reversed_tree.popleft()*2-l+reversed_tree[n//2]*2
  ans2=max(ans2,ans_stack)
  ans4=ans_stack
print(max(ans,ans2))

Buggy submission (verdict: Runtime Error):
import sys
import numpy
from collections import deque
l,n=map(int,input().split())
c=n
tree1=numpy.array[int(i) for i in sys.stdin]
reversed_tree1=numpy.array[l-i for i in reversed(tree1)]
tree=deque(tree1)
reversed_tree=deque(reversed_tree1)
if n%2 == 0:
  ans= sum(tree1)*2 + l*(n-1) +tree1[n//2] - sum(tree1[n//2:])*4
  ans2= sum(reversed_tree1)*2 + l*(n-1) +reversed_tree1[n//2] - sum(reversed_tree1[n//2:])*4
  n-=1
  c-=1
  ans3= ans-tree.popleft()*2-l+tree[n//2]*2
  ans= max(ans,ans3)
  ans4= ans2-reversed_tree.popleft()*2-l+(reversed_tree[n//2])*2
  ans2= max(ans2,ans4)
else:
  ans= sum(tree1)*2 + l*(n-1) - tree1[n//2] - sum(tree1[((n//2)+1):])*4
  ans3=ans
  ans2= sum(reversed_tree1)*2 + l*(n-1) - reversed_tree1[n//2] - sum(reversed_tree1[((n//2)+1):])*4
  ans4=ans2
for i in range(n//2):
  n-=1
  ans_stack= ans3-tree.popleft()*2-l+tree[(n-1)//2]+tree[(n+1)//2]
  ans= max(ans_stack,ans)
  ans3=ans_stack
  n-=1
  ans_stack= ans3-tree.popleft()*2-l+tree[n//2]*2
  ans=max(ans_stack,ans)
  ans3=ans_stack
n=c
for i in range(n//2):
  n-=1
  ans_stack= ans4-reversed_tree.popleft()*2-l+reversed_tree[(n-1)//2]+reversed_tree[(n+1)//2]
  ans2=max(ans_stack,ans2)
  ans4=ans_stack
  n-=1
  ans_stack= ans4-reversed_tree.popleft()*2-l+reversed_tree[n//2]*2
  ans2=max(ans2,ans_stack)
  ans4=ans_stack
print(max(ans,ans2))

Buggy submission (verdict: Runtime Error):
import sys
from collections import deque
l,n=map(int,input().split())
p=n//2
q=(n+1)//2
r=(n-1)//2
tree1=[int(i) for i in sys.stdin]
reversed_tree1=[l-i for i in reversed(tree1)]
tree=deque(tree1)
reversed_tree=deque(reversed_tree1)
if n%2 == 0:
  ans= sum(tree1)*2 + l*(n-1) +tree1[p] - sum(tree1[p:])*4
  ans2= sum(reversed_tree1)*2 + l*(n-1) +reversed_tree1[p] - sum(reversed_tree1[p:])*4
  p-=1
  ans3= ans-tree.popleft()*2-l+tree[p]*2
  ans= max(ans,ans3)
  ans4= ans2-reversed_tree.popleft()*2-l+(reversed_tree[p])*2
  ans2= max(ans2,ans4)
else:
  ans= sum(tree1)*2 + l*(n-1) - tree1[p] - sum(tree1[q:])*4
  ans3=ans
  ans2= sum(reversed_tree1)*2 + l*(n-1) - reversed_tree1[p] - sum(reversed_tree1[q:])*4
  ans4=ans2
while len(tree)>1:
  q-=1
  r-=1
  ans_stack= ans3-tree.popleft()*2-l+tree[r]+tree[q]
  ans= max(ans_stack,ans)
  ans3=ans_stack
  p-=1
  ans_stack= ans3-tree.popleft()*2-l+tree[p]*2
  ans=max(ans_stack,ans)
  ans3=ans_stack
p=n//2
q=(n+1)//2
r=(n-1)//2
while len(reversed_tree)>1:
  q-=1
  r-=1
  ans_stack= ans4-reversed_tree.popleft()*2-l+reversed_tree[r]+reversed_tree[q]
  ans2=max(ans_stack,ans2)
  ans4=ans_stack
  p-=1
  ans_stack= ans4-reversed_tree.popleft()*2-l+reversed_tree[p]*2
  ans2=max(ans2,ans_stack)
  ans4=ans_stack
print(max(ans,ans2))

Buggy submission (verdict: Runtime Error):
import sys
from collections import deque
l,n=map(int,input().split())
p=n//2
q=(n+1)//2
r=(n-1)//2
tree1=[int(i) for i in sys.stdin]
reversed_tree1=[l-i for i in reversed(tree1)]
tree=deque(tree1)
reversed_tree=deque(reversed_tree1)
if n%2 == 0:
  ans= sum(tree1)*2 + l*(n-1) +tree1[p] - sum(tree1[p:])*4
  ans2= sum(reversed_tree1)*2 + l*(n-1) +reversed_tree1[p] - sum(reversed_tree1[p:])*4
  p-=1
  ans3= ans-tree.popleft()*2-l+tree[p]*2
  ans= max(ans,ans3)
  ans4= ans2-reversed_tree.popleft()*2-l+(reversed_tree[p])*2
  ans2= max(ans2,ans4)
else:
  ans= sum(tree1)*2 + l*(n-1) - tree1[p] - sum(tree1[q:])*4
  ans3=ans
  ans2= sum(reversed_tree1)*2 + l*(n-1) - reversed_tree1[p] - sum(reversed_tree1[q:])*4
  ans4=ans2
while len(tree)>1:
  q-=1
  r-=1
  ans_stack= ans3-tree.popleft()*2-l+tree[s]+tree[q]
  ans= max(ans_stack,ans)
  ans3=ans_stack
  p-=1
  ans_stack= ans3-tree.popleft()*2-l+tree[p]*2
  ans=max(ans_stack,ans)
  ans3=ans_stack
p=n//2
q=(n+1)//2
r=(n-1)//2
while len(reversed_tree)>1:
  q-=1
  r-=1
  ans_stack= ans4-reversed_tree.popleft()*2-l+reversed_tree[s]+reversed_tree[q]
  ans2=max(ans_stack,ans2)
  ans4=ans_stack
  p-=1
  ans_stack= ans4-reversed_tree.popleft()*2-l+reversed_tree[p]*2
  ans2=max(ans2,ans_stack)
  ans4=ans_stack
print(max(ans,ans2))

Buggy submission (verdict: Runtime Error):
import sys
from collections import deque
l,n=map(int,input().split())
p=n//2
q=(n-1)//2
r=(n+1)//2
tree1=[int(i) for i in sys.stdin]
reversed_tree1=[l-i for i in tree1]
tree=deque(tree1)
reversed_tree=deque(reversed_tree1)
if n%2 == 0:
  ans= 1
  ans2= 1
  p-=1
  ans3= ans-tree.popleft()*2-l+tree[p]*2
  ans= max(ans,ans3)
  ans4= ans2-reversed_tree.popleft()*2-l+(reversed_tree[p])*2
  ans2= max(ans2,ans4)
else:
  ans= 1
  ans3=ans
  ans2= 1
  ans4=ans2
while len(tree)>1:
  q-=1
  r-=1
  ans_stack= ans3-tree.popleft()*2-l+tree[q]+tree[r]
  ans3=ans_stack
  p-=1
  ans_stack= ans3-tree.popleft()*2-l+tree[p]*2
  ans3=ans_stack
p=n//2
q=(n-1)//2
r=(n+1)//2
while len(reversed_tree)>1:
  q-=1
  r-=1
  ans_stack= ans4-reversed_tree.popleft()*2-l+reversed_tree[q]+reversed_tree[r]
  ans4=ans_stack
  p-=1
  ans_stack= ans4-reversed_tree.popleft()*2-l+reversed_tree[p]*2
  ans4=ans_stack
print(max(ans,ans2))

Buggy submission (verdict: Runtime Error):
import sys
from collections import deque
l,n=map(int,input().split())
c=n
tree1=[int(i) for i in sys.stdin]
reversed_tree1=[l-i for i in reversed(tree1)]
tree=deque(tree1)
reversed_tree=deque(reversed_tree1)
if n%2 == 0:
  ans= sum(tree)*2 + l*(n-1) +tree[n//2] - sum(tree[n//2:])*4
  ans2= sum(reversed_tree)*2 + l*(n-1) +reversed_tree[n//2] - sum(reversed_tree[n//2:])*4
  n-=1
  c-=1
  ans3= ans-tree.pop(0)*2-l+tree[n//2]*2
  ans= max(ans,ans3)
  ans4= ans2-reversed_tree.pop(0)*2-l+(reversed_tree[n//2])*2
  ans2= max(ans2,ans4)
else:
  ans= sum(tree)*2 + l*(n-1) - tree[n//2] - sum(tree[((n//2)+1):])*4
  ans3=ans
  ans2= sum(reversed_tree)*2 + l*(n-1) - reversed_tree[n//2] - sum(reversed_tree[((n//2)+1):])*4
  ans4=ans2
while n>1:
  n-=1
  ans_stack= ans3-tree.pop(0)*2-l+tree[(n-1)//2]+tree[(n+1)//2]
  ans= max(ans_stack,ans)
  ans3=ans_stack
  n-=1
  ans_stack= ans3-tree.pop(0)*2-l+tree[n//2]*2
  ans=max(ans_stack,ans)
  ans3=ans_stack
n=c
while n>1:
  n-=1
  ans_stack= ans4-reversed_tree.pop(0)*2-l+reversed_tree[(n-1)//2]+reversed_tree[(n+1)//2]
  ans2=max(ans_stack,ans2)
  ans4=ans_stack
  n-=1
  ans_stack= ans4-reversed_tree.pop(0)*2-l+reversed_tree[n//2]*2
  ans2=max(ans2,ans_stack)
  ans4=ans_stack
print(max(ans,ans2))

Buggy submission (verdict: Runtime Error):
l,n=map(int,input().split())
tree=[]
for i in range(n):
  k=int(input())
  tree.append(k)

reverse_tree=[l-i for i in tree]
reverse_tree.reverse()

position=0
ans=0
flag=True

def loop(i,j,tf):
    global flag
    global ans
    global position
    position_A=tree[i]
    position_B=l-reverse_tree[j]
    ans_A=0
    ans_B=0
    if (i!=0 or j!=0) and tf:
        ans_A+= tree[i]-tree[i-1]
        ans_B+= reverse_tree[j]+tree[i-1]
    elif i!=0 or j!=0:
        ans_A+= reverse_tree[j-1]+tree[i]
        ans_B+= reverse_tree[j-1]+reverse_tree[j]
    if (tree[i+1]-position_A >= reverse_tree[j]+position_A):
        ans_A+= tree[i+1]-position_A
    else:
        ans_A+= reverse_tree[i]+position_A
    if (l-position_B+tree[i] >= position_B-l+reverse_tree[j+1]):
        ans_B+= l-position_B+tree[i]
    else:
        ans_B+= position_B-l+reverse_tree[j+1]
    if ans_A == ans_B:
        A_1  = ans_A
        B_1  = ans_B
        ans_A = A_1 + loop(i+1,j,True)
        ans_B = B_1 + loop(i,j+1,False)
    if i==0 and j==0 and flag==True:
        if ans_A > ans_B:
            ans+= tree[0]-position
            position=tree.pop(0)
            reverse_tree.pop(-1)
        elif ans_B > ans_A:
            ans+= reverse_tree[0]+position
            position=l-reverse_tree.pop(0)
            tree.pop(-1)
            flag=False
    elif i==0 and j==0 and flag==False:
        if ans_A > ans_B:
            ans+= l-position+tree[0]
            position=tree.pop(0)
            reverse_tree.pop(-1)
            flag=True
        elif ans_B > ans_A:
            ans+= position-l+reverse_tree[0]
            position=l-reverse_tree.pop(0)
            tree.pop(-1)
    return max(ans_A,ans_B)

while len(tree)>0:
    if flag:
        if (tree[0]-position > reverse_tree[0]+position):
            ans+= tree[0]-position
            position=tree.pop(0)
            reverse_tree.pop(-1)
        elif (tree[0]-position == reverse_tree[0]+position):
            loop(0,0,True)
        else:
            ans+= reverse_tree[0]+position
            position=l-reverse_tree.pop(0)
            tree.pop(-1)
            flag=False
    else:
        if (l-position+tree[0] > position-l+reverse_tree[0]):
            ans+= l-position+tree[0]
            position=tree.pop(0)
            reverse_tree.pop(-1)
            flag=True
        elif (l-position+tree[0] == position-l+reverse_tree[0]):
            loop(0,0,False)
        else:
            ans+= position-l+reverse_tree[0]
            position=l-reverse_tree.pop(0)
            tree.pop(-1)
    print(position)

print(ans)

Buggy submission (verdict: Runtime Error):
l,n=map(int,input().split())
tree=[]
for i in range(n):
  k=int(input())
  tree.append(k)

reverse_tree=[l-i for i in tree]
reverse_tree.reverse()

position=0
ans=0
flag=True

while len(tree)>0:
    if flag:
        if (tree[0]-position > reverse_tree[0]+position):
            ans+= tree[0]-position
            position=tree.pop(0)
            reverse_tree.pop(-1)
        elif (tree[0]-position == reverse_tree[0]+position):
            if tree[1]>=reverse_tree[1]:
                ans+= tree[0]-position
                position=tree.pop(0)
                reverse_tree.pop(-1)
            else:
                ans+= reverse_tree[0]+position
                position=l-reverse_tree.pop(0)
                tree.pop(-1)
                flag=False
        else:
            ans+= reverse_tree[0]+position
            position=l-reverse_tree.pop(0)
            tree.pop(-1)
            flag=False
    else:
        if (l-position+tree[0] > position-l+reverse_tree[0]):
            ans+= l-position+tree[0]
            position=tree.pop(0)
            reverse_tree.pop(-1)
            flag=True
        elif (l-position+tree[0] == position-l+reverse_tree[0]):
            if tree[1]>=reverse_tree[1]:
                ans+= l-position+tree[0]
                position=tree.pop(0)
                reverse_tree.pop(-1)
                flag=True
            else:
                ans+= position-l+reverse_tree[0]
                position=l-reverse_tree.pop(0)
                tree.pop(-1)
        else:
            ans+= position-l+reverse_tree[0]
            position=l-reverse_tree.pop(0)
            tree.pop(-1)

print(ans)

Buggy submission (verdict: Runtime Error):
l,n=map(int,input().split())
tree=[]
for i in range(n):
  k=int(input())
  tree.append(k)

reverse_tree=[l-i for i in tree]
position=0
ans=0

while len(tree)>0:
  if (tree[0]-position >= reverse_tree[0]+position):
  ans+= tree[0]-position
  position=tree.pop(tree[0])
  reverse_tree.pop(reverse_tree[-1])
else:
  ans+= reverse_tree[0]+position
  position=l-reverse_tree.pop(reverse_tree[0])
  tree.pop(tree[-1])
  
print(ans)