Problem p03525 (python)

Fixed submission:
from itertools import product
from collections import Counter


def solve():
    N = int(input())
    *D, = map(int, input().split())

    l, m = [], []
    for i, j in Counter(D).items():
        if j>=3 or (i==12 and j>=2) or i==0:
            print(0)
            return
        elif j==2:
            l.append(i)
        elif j==1:
            m.append(i)

    size = len(m)
    ans = 0

    for i in product(range(2), repeat=size):
        c = []
        for j, k in enumerate(i):
            if k:
                c.append(m[j])
            else:
                c.append(24-m[j])
        for j in l:
            c.append(j)
            c.append(24-j)

        v = 24
        for j in c:
            d = min(j, 24-j)
            v = min(v, d)

        for j in range(N):
            for k in range(j+1, N):
                d = abs(c[j]-c[k])
                v = min(v, min(d, 24-d))
        ans = max(ans, v)

    print(ans)


if __name__ == "__main__":
    solve()

Buggy submission (verdict: Runtime Error):
from itertools import product, combinations
from collections import Counter


def solve():
    N = int(input())
    *D, = map(int, input().split())

    l, m = [], []
    for i, j in Counter(D).items():
        if j>=3 or (i==12 and j>=2) or i==0:
            print(0)
            return
        elif j==2:
            l += [i]
        elif j==1:
            m += [i]

    size = len(m)
    ans = 0

    g = lambda x: min(x, 24-x)

    for i in product(range(2), repeat=size):
        c = [m[j] if k else 24-m[j] for j, k in enumerate(i)]
        f = lambda x, y: g(abs(c[x]-c[y]))
        for j in l:
            c.append(j)
            c.append(24-j)

        a = min(map(g, c))
        b = min(f(j, k) for j, k in combinations(range(N), 2))
        ans = max(ans, min(a, b))

    print(ans)

if __name__ == "__main__":
    solve()

Buggy submission (verdict: Runtime Error):
from itertools import product, combinations
from collections import Counter


def solve():
    N = int(input())
    *D, = map(int, input().split())

    l, m = [], []
    for i, j in Counter(D).items():
        if j>=3 or (i==12 and j>=2) or i==0:
            print(0)
        elif j==2:
            l += [i]
        elif j==1:
            m += [i]

    size = len(m)
    ans = 0

    g = lambda x: min(x, 24-x)

    for i in product(range(2), repeat=size):
        c = [m[j] if k else 24-m[j] for j, k in enumerate(i)]
        f = lambda x, y: g(abs(c[x]-c[y]))
        for j in l:
            c.append(j)
            c.append(24-j)

        a = min(map(g, c))
        b = min(f(j, k) for j, k in combinations(range(N), 2))
        ans = max(ans, min(a, b))

    print(ans)

if __name__ == "__main__":
    solve()

Buggy submission (verdict: Runtime Error):
from itertools import product
from collections import Counter


def solve():
    N = int(input())
    *D, = map(int, input().split())

    if N==1:
        print(D[0])
        return
    else:
        l, m = [], []
        for i, j in Counter(D).items():
            if j>=3 or ((i==0 or i==12) and j>=2):
                print(0)
            elif j==2:
                l.append(i)
            elif j==1:
                m.append(i)

    size = len(m)
    ans = 0

    for i in product(range(2), repeat=size):
        c = []
        for j, k in enumerate(i):
            if k:
                c.append(m[j])
            else:
                c.append(24-m[j])
        for j in l:
            c.append(j)
            c.append(24-j)

        v = 24
        for j in range(N):
            for k in range(j+1, N):
                v = min(v, abs(c[j]-c[k]))
        ans = max(ans, v)

    print(ans)


if __name__ == "__main__":
    solve()