Problem p02580 (python)

Fixed submission:
H,W,M = map(int,input().split())
h = [0]*M
w = [0]*M

from collections import defaultdict
counter_h = defaultdict(int)
counter_w = defaultdict(int)

for i in range(M):
    h[i],w[i] = map(int, input().split())
    counter_h[h[i]] += 1
    counter_w[w[i]] += 1

MAX_h = max(counter_h.values())
h_list = [k for k, v in counter_h.items() if v == MAX_h]
MAX_w = max(counter_w.values())
w_list = [k for k, v in counter_w.items() if v == MAX_w]


ans = MAX_h+MAX_w
check = 0

for i in range(M):
    if counter_h[h[i]]==MAX_h and counter_w[w[i]]==MAX_w:
        check += 1

if len(h_list)*len(w_list)==check:
    ans -= 1

print(ans)

Buggy submission (verdict: Runtime Error):
H,W,M = map(int,input().split())
h = [0]*M
w = [0]*M

from collections import defaultdict
counter_h = defaultdict(int)
counter_w = defaultdict(int)

for i in range(M):
    h[i],w[i] = map(int, input().split())
    counter_h[h[i]] += 1
    counter_w[w[i]] += 1

@njit
def main(counter_h,counter_w,h,w,M):
    MAX_h = max(counter_h.values())
    h_list = [k for k, v in counter_h.items() if v == MAX_h]
    MAX_w = max(counter_w.values())
    w_list = [k for k, v in counter_w.items() if v == MAX_w]

    import itertools

    ans = MAX_h+MAX_w

    if len(h_list)*len(w_list)<=3*10**5:
        X = list(itertools.product(h_list, w_list))


        check = 0


        for i in range(M):
                if (h[i],w[i]) in X:
                    check += 1

        if len(X)==check:
            ans -= 1

    print(ans)
    
main(counter_h,counter_w,h,w,M)

Buggy submission (verdict: Runtime Error):
H,W,M = map(int,input().split())
h = [0]*M
w = [0]*M

from collections import defaultdict
counter_h = defaultdict(int)
counter_w = defaultdict(int)

for i in range(M):
    h[i],w[i] = map(int, input().split())
    counter_h[h[i]] += 1
    counter_w[w[i]] += 1
    
MAX_h = max(counter_h.values())
h_list = [k for k, v in counter_h.items() if v == MAX_h]
MAX_w = max(counter_w.values())


import itertools

ans = MAX_h+MAX_w

if len(h_list)*len(w_list)<=3*10**5:
    X = h_list


    check = 0


    for i in range(M):
            if h[i] in X:
                check += 1

    if len(X)==check:
        ans -= 1
    
print(ans)

Buggy submission (verdict: Runtime Error):
H,W,M = map(int,input().split())
h = [0]*M
w = [0]*M

from collections import defaultdict
counter_h = defaultdict(int)
counter_w = defaultdict(int)

for i in range(M):
    h[i],w[i] = map(int, input().split())
    counter_h[h[i]] += 1
    counter_w[w[i]] += 1
    
MAX_h = max(counter_h.values())
h_list = [k for k, v in counter_h.items() if v == MAX_h]
MAX_w = max(counter_w.values())
w_list = [k for k, v in counter_w.items() if v == MAX_w]

import itertools

if len(h_list)*len(w_list)<=3*10**5:
    X = list(itertools.product(h_list, w_list))

    ans = MAX_h+MAX_w
    check = 0


    for i in range(M):
            if (h[i],w[i]) in X:
                check += 1

    if len(X)==check:
        ans -= 1
    
print(ans)

Buggy submission (verdict: Runtime Error):
H,W,M = map(int,input().split())
h = [0]*M
w = [0]*M

from collections import defaultdict
counter_h = defaultdict(int)
counter_w = defaultdict(int)

for i in range(M):
    h[i],w[i] = map(int, input().split())
    counter_h[h[i]] += 1
    counter_w[w[i]] += 1
    
MAX_h = max(counter_h.values())
h_list = [k for k, v in counter_h.items() if v == MAX_h]
MAX_w = max(counter_w.values())
w_list = [k for k, v in counter_w.items() if v == MAX_w]

import itertools

if len(h_list)*len(w_list)<=3*10**5:
    X = list(itertools.product(h_list, w_list))

    ans = MAX_h+MAX_w
    check = 0


        for i in range(M):
            if (h[i],w[i]) in X:
                check += 1

    if len(X)==check:
        ans -= 1
    
print(ans)

Buggy submission (verdict: Runtime Error):
H,W,M = map(int,input().split())
h = [0]*M
w = [0]*M

from collections import defaultdict
counter_h = defaultdict(int)
counter_w = defaultdict(int)

for i in range(M):
    h[i],w[i] = map(int, input().split())
    counter_h[h[i]] += 1
    counter_w[w[i]] += 1
    
MAX_h = max(counter_h.values())
h_list = [k for k, v in counter_h.items() if v == MAX_h]
MAX_w = max(counter_w.values())
w_list = [k for k, v in counter_w.items() if v == MAX_w]

import itertools
X = list(itertools.product(h_list, w_list))

ans = MAX_h+MAX_w
check = 0

if lenX<3*10**5:
    for i in range(M):
        if (h[i],w[i]) in X:
            check += 1

if len(X)==check:
    ans -= 1
    
print(ans)