Problem p03244 (python)

Fixed submission:
import collections

n = int(input())
V = list(map(int, input().split()))


V_e = V[1::2]
V_o = V[::2]

dic_e = collections.Counter(V_e)
dic_o = collections.Counter(V_o)

e_items = (sorted(dic_e.items(), key=lambda x: -x[1]))[:2]
o_items = (sorted(dic_o.items(), key=lambda x: -x[1]))[:2]



# dic_o を優先

tar_key_o = o_items[0][0]

if e_items[0][0] != tar_key_o:
    ans_o = (n//2 - e_items[0][1]) + (n//2 - o_items[0][1])

elif len(e_items) > 1 and e_items[1][0] != tar_key_o:
    ans_o = (n//2 - e_items[0][1]) + (n//2 - o_items[1][1])
else:
    ans_o = (n//2 - e_items[0][1]) + (n//2)

# dic_o を優先

tar_key_e = e_items[0][0]

if o_items[0][0] != tar_key_e:
    ans_e = (n//2 - o_items[0][1]) + (n//2 - e_items[0][1])

elif len(o_items) > 1 and o_items[1][0] != tar_key_e:
    ans_e = (n//2 - o_items[0][1]) + (n//2 - e_items[1][1])
else:
    ans_e = (n//2 - o_items[0][1]) + (n//2)



ans = min(ans_e,ans_o)
#print(ans_o,ans_e)
print(ans)

Buggy submission (verdict: Runtime Error):
# -*- coding: utf-8 -*-
import math,string,itertools,fractions,heapq,collections,re,array,bisect
import numpy as np

N = int(input())
V = list(map(int, input().split()))

odd = V[::2]
even = V[1:N:2]

odd_d = collections.Counter(odd)
even_d = collections.Counter(even)

if odd == even:
    print(len(odd))
    exit()

if len(odd_d.keys()) == 1 and len(even_d.keys()) == 1:
    if odd[0] == even[0]:
        ans =len(odd)
    else:
        ans = 0
else:
    for i,n in enumerate(odd_d.keys()):
        if i == 0:
            odd_ind = n
        elif i == 1:
            odd_ind2 = n
        else:
            break


    for n in even_d.keys():
        if i == 0:
            even_ind = n
        elif i == 1:
            even_ind2 = n
        else:
            break

    if odd_ind != even_ind:
        ans = (N//2 - odd_d[odd_ind]) + (N//2 - even_d[even_ind])
    else:
        if odd_ind > even_ind:
            ans = (N//2 - odd_d[odd_ind]) + (N//2 - even_d[even_ind2])
        else:
            ans = (N//2 - odd_d[odd_ind2]) + (N//2 - even_d[even_ind])
print(ans)

Buggy submission (verdict: Runtime Error):
# -*- coding: utf-8 -*-
import math,string,itertools,fractions,heapq,collections,re,array,bisect
import numpy as np

N = int(input())
V = list(map(int, input().split()))

odd = V[::2]
even = V[1:N:2]

odd_d = collections.Counter(odd)
even_d = collections.Counter(even)

if odd == even:
    print(len(odd))
    exit()

if len(odd_d.keys()) == 1 and len(even_d.keys()) == 0:
    if odd[0] == even[0]:
        ans =len(odd)
    else:
        ans = 0
else:
    for i,n in enumerate(odd_d.keys()):
        if i == 0:
            odd_ind = n
        elif i == 1:
            odd_ind2 = n
        else:
            break


    for n in even_d.keys():
        if i == 0:
            even_ind = n
        elif i == 1:
            even_ind2 = n
        else:
            break

    if odd_ind != even_ind:
        ans = (N//2 - odd_d[odd_ind]) + (N//2 - even_d[even_ind])
    else:
        if odd_ind > even_ind:
            ans = (N//2 - odd_d[odd_ind]) + (N//2 - even_d[even_ind2])
        else:
            ans = (N//2 - odd_d[odd_ind2]) + (N//2 - even_d[even_ind])
print(ans)