Submission details
Task:Ruudukko
Sender:removed82788
Submission time:2022-11-08 21:38:39 +0200
Language:Python3 (CPython3)
Status:BUSTED

Code

# n = 3
# rows = [[2, 1, 3], [1, 1, 1], [9, 2, 7]]

n = int(input())
rows = []
for i in range(n):
    rows.append([int(x) for x in input().split(" ")])

unique_numbers = []
for i in range(n):
    for j in range(n):
        if(rows[i][j] not in unique_numbers):
            unique_numbers.append(rows[i][j])
unique_numbers = sorted(unique_numbers)

def count_global(lambda_function):
    c = 0
    for i in range(n):
        for j in range(n):
            if lambda_function(rows[i][j]):
                c += 1
    return c

def count_elements(x, y, lambda_function):
    c = 0
    for i in range(n):
        if lambda_function(rows[y][i]):
            c += 1
        if lambda_function(rows[i][x]):
            c += 1
    return c

cache = {}

cache[unique_numbers[0]] = count_global(lambda x: x == unique_numbers[0])

for i in range(1, len(unique_numbers)):
    c = 0
    for x in range(n):
        for y in range(n):
            if(rows[y][x] == unique_numbers[i]):
                c += count_elements(x, y, lambda x: x < unique_numbers[i])
    cache[unique_numbers[i]] = c + count_global(lambda x: x == unique_numbers[i])

def can_go_from(index):
    s = 0
    for i in range(index+1):
        s += cache[unique_numbers[i]]
    return s


answer = 0
for i in range(len(unique_numbers) - 1):
    answer += can_go_from(i)

print(answer)