Problem p03848 (python)

Fixed submission:
import sys
n = int(input())
a = list(map(int, input().split(' ')))

a.sort()
if n%2 == 0:
    for i in range(n-1):
        if i%2 == 0:
            if a[i] == a[i+1]:
                continue
            else:
                print(0)
                sys.exit()
        else:
            if a[i]+2 == a[i+1]:
                continue
            else:
                print(0)
                sys.exit()
    result = 2 ** (n//2)
    print(result % (10**9+7))
else:
    if a[0] == 0:
        for i in range(1, n-1):
            if i%2 == 1:
                if a[i] == a[i+1]:
                    continue
                else:
                    print(0)
                    sys.exit()
            else:
                if a[i]+2 == a[i+1]:
                    continue
                else:
                    print(0)
                    sys.exit()
        result = 2**((n-1)//2)
        print(result %(10**9+7))
    else:
        print(0)
        sys.exit()

Buggy submission (verdict: Runtime Error):
import sys
n = int(input())
a = list(map(int, input().split(' ')))

a.sort()
if n%2 == 0:
    for i in range(n-1):
        if i%2 == 0:
            if a[i] == a[i+1]:
                continue
            else:
                print(0)
                sys.exit()
        else:
            if a[i]+2 == a[i+1]:
                continue
            else:
                print(0)
                sys.exit()
    print((2 ** (n//2)) % (10**9+7))
else:
    if a[0] == 0:
        for i in range(1, n-1):
            if i%2 == 1:
                if a[i] == a[i+1]:
                    continue
                else:
                    print(0)
                    sys.exit()
            else:
                if a[i]+2 == a[i+1]:
                    continue
                else:
                    print(0)
                    sys.exit()
        print(2**((n-1)/2)%(10**9+7))
    else:
        print(0)
        sys.exit()

Buggy submission (verdict: Runtime Error):
import sys
n = int(input())
a = list(map(int, input().split(' ')))

a.sort()
if n%2 == 0:
    for i in range(n-1):
        if i%2 == 0:
            if a[i] == a[i+1]:
                continue
            else:
                print(0)
                sys.exit()
        else:
            if a[i]+2 == a[i+1]:
                continue
            else:
                print(0)
                sys.exit()
    print(int(2**(n/2)%(10**9+7)))
else:
    if a[0] == 0:
        for i in range(1, n-1):
            if i%2 == 1:
                if a[i] == a[i+1]:
                    continue
                else:
                    print(0)
                    sys.exit()
            else:
                if a[i]+2 == a[i+1]:
                    continue
                else:
                    print(0)
                    sys.exit()
        print(int(2**((n-1)/2)%(10**9+7)))    
    else:
        print(0)
        sys.exit()

Buggy submission (verdict: Runtime Error):
import sys
n = int(input())
a = list(map(int, input().split(' ')))

a.sort()
if n%2 == 0:
    for i in range(n-1):
        if i%2 == 0:
            if a[i] == a[i+1]:
                continue
            else:
                print(0)
                sys.exit()
        else:
            if a[i]+2 == a[i+1]:
                continue
            else:
                print(0)
                sys.exit()
    print(int(2**(n/2)))
else:
    if a[0] == 0:
        for i in range(1, n-1):
            if i%2 == 1:
                if a[i] == a[i+1]:
                    continue
                else:
                    print(0)
                    sys.exit()
            else:
                if a[i]+2 == a[i+1]:
                    continue
                else:
                    print(0)
                    sys.exit()
        print(int(2**((n-1)/2)))    
    else:
        print(0)
        sys.exit()

Buggy submission (verdict: Runtime Error):
import sys
n = int(input())
a = list(map(int, input().split(' ')))

a.sort()
a.append(-1)
counter = 0
b = []
for i in range(n+1):
    if a[counter] == a[i]:
        continue
    else:
        b.append([a[counter], i-counter])
        counter = i
odd = 0
if n%2 == 1:
    if b[0][0] == 0 and b[0][1] == 1:
        b[0][1] += 1
        n += 1
        odd = 1
    else:
        print(0)
        sys.exit()
if odd:
    for i in range(int(n//2)):
        if b[i][0] == i*2 and b[i][1] == 2:
            continue
        else:
            print(0)
            sys.exit()
else:
    for i in range(int(n//2)):
        if b[i][0] == i*2+1 and b[i][1] == 2:
            continue
        else:
            print(0)
            sys.exit()
if odd:
    print(int(2**(n/2 -1)%(10**9 + 7)))
else:
    print(int(2**(n/2)%(10**9 + 7)))

Buggy submission (verdict: Runtime Error):
import sys
n = int(input())
a = list(map(int, input().split(' ')))

a.sort()
a.append(-1)
counter = 0
b = []
for i in range(n+1):
    if a[counter] == a[i]:
        continue
    else:
        b.append([a[counter], i-counter])
        counter = i
odd = 0
if n%2 == 1:
    if b[0][0] == 0 and b[0][1] == 1:
        b[0][1] += 1
        n += 1
        odd = 1
    else:
        print(0)
        sys.exit()
if odd:
    for i in range(int(n//2)):
        if b[i][0] == i*2 and b[i][1] == 2:
            continue
        else:
            print(0)
            sys.exit()
else:
    for i in range(int(n//2)):
        if b[i][0] == i*2+1 and b[i][1] == 2:
            continue
        else:
            print(0)
            sys.exit()
if odd:
    print(int(2**(n/2 -1)))
else:
    print(int(2**(n/2)))