Problem p03061 (python)

Fixed submission:
import sys
from fractions import gcd

N = int(input())
A = list(map(int, input().strip().split(' ')))

if N == 2:
    print(max(A))
    sys.exit(0)

L = [0 for i in range(N)]
R = [0 for i in range(N)]
L[0] = A[0]
R[-1] = A[-1]

for i in range(1, N):
    L[i] = gcd(L[i-1], A[i])
    R[-i-1] = gcd(R[-i], A[-i-1])

# print(L)
# print(R)

max_gcd = max(L[-2], R[1])
for i in range(1, N-1):
    #print(math.gcd(L[i-1], R[i+1]))
    max_gcd = max(max_gcd, gcd(L[i-1], R[i+1]))

print(max_gcd)
#min_g = max(G1[-1], G2[1])
#min_g2 = [math.gcd(G1[i], G2[i+1]) for i in range(N-2)]

Buggy submission (verdict: Runtime Error):
from fraction import gcd
import sys
 
N = int(input())
A = list(map(int, input().strip().split(' ')))
 
if N == 2:
    print(max(A[0], A[1]))
    sys.exit(0)
 
G1 = [0 for i in range(N)]
G2 = [0 for i in range(N)]
 
G1[0] = A[0]
G2[N-1] = A[N-1]
#G1[1] = math.gcd(A[0], A[1])
#G2[N-2] = math.gcd(A[-1], A[-2])
for i in range(1, N):
    G1[i] = gcd(G1[i-1], A[i])
    G2[N-i-1] = gcd(G2[N-i], A[N-i-1])
 
min_g = max(G1[1], G2[-2])
for i in range(1, N-1):
    min_g = max(min_g, gcd(G1[i-1], G2[i+1]))
 
print(min_g)

Buggy submission (verdict: Runtime Error):
import math
import sys

N = int(input())
A = list(map(int, input().strip().split(' ')))

if N == 2:
    print(max(A))
    sys.exit(0)

L = [0 for i in range(N)]
R = [0 for i in range(N)]
L[0] = A[0]
R[-1] = A[-1]

for i in range(1, N):
    L[i] = math.gcd(L[i-1], A[i])
    R[-i-1] = math.gcd(R[-i], A[-i-1])

# print(L)
# print(R)

max_gcd = max(L[-2], R[1])
for i in range(1, N-1):
    #print(math.gcd(L[i-1], R[i+1]))
    max_gcd = max(max_gcd, math.gcd(L[i-1], R[i+1]))

print(max_gcd)
#min_g = max(G1[-1], G2[1])
#min_g2 = [math.gcd(G1[i], G2[i+1]) for i in range(N-2)]

Buggy submission (verdict: Runtime Error):
import math
import sys

N = int(input())
A = list(map(int, input().strip().split(' ')))

if N == 2:
    print(max(A))
    sys.exit(0)

L = [0 for i in range(N)]
R = [0 for i in range(N)]
L[0] = A[0]
R[-1] = A[-1]

for i in range(1, N):
    L[i] = math.gcd(L[i-1], A[i])
    R[-i-1] = math.gcd(R[-i], A[-i-1])

# print(L)
# print(R)

max_gcd = max(L[-2], R[1])
for i in range(1, N-1):
    #print(math.gcd(L[i-1], R[i+1]))
    max_gcd = max(max_gcd, math.gcd(L[i-1], R[i+1]))

print(max_gcd)
#min_g = max(G1[-1], G2[1])
#min_g2 = [math.gcd(G1[i], G2[i+1]) for i in range(N-2)]

Buggy submission (verdict: Runtime Error):
import math
import sys

N = int(input())
A = list(map(int, input().strip().split(' ')))

if N == 2:
    print(max(A))
    sys.exit(0)

L = [0 for i in range(N)]
R = [0 for i in range(N)]
L[0] = A[0]
R[-1] = A[-1]

for i in range(1, N):
    L[i] = math.gcd(L[i-1], A[i])
    R[-i-1] = math.gcd(R[-i], A[-i-1])

# print(L)
# print(R)

max_gcd = max(L[-2], R[1])
for i in range(1, N-1):
    print(math.gcd(L[i-1], R[i+1]))
    max_gcd = max(max_gcd, math.gcd(L[i-1], R[i+1]))

print(max_gcd)
#min_g = max(G1[-1], G2[1])
#min_g2 = [math.gcd(G1[i], G2[i+1]) for i in range(N-2)]

Buggy submission (verdict: Runtime Error):
import math
import sys

N = int(input())
A = list(map(int, input().strip().split(' ')))

if N == 2:
    print(max(A[0], A[1]))
    sys.exit(0)

G1 = [0 for i in range(N)]
G2 = [0 for i in range(N)]

G1[0] = A[0]
G2[N-1] = A[N-1]
#G1[1] = math.gcd(A[0], A[1])
#G2[N-2] = math.gcd(A[-1], A[-2])
for i in range(1, N):
    print(G2[N-i-1], A[N-i-2])
    G1[i] = math.gcd(G1[i-1], A[i])
    G2[N-i-1] = math.gcd(G2[N-i], A[N-i-1])

min_g = max(G1[1], G2[-2])
for i in range(1, N-1):
    print(math.gcd(G1[i-1], G2[i+1]))
    min_g = max(min_g, math.gcd(G1[i-1], G2[i+1]))

print(min_g)