1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/usr/bin/python3.9

from itertools import permutations

n = 4
l = [0, 1,2,3,4]

class node:
    def __init__(self,nr):
        self.nr = nr
        self.edge = []

    def addEdge(self,nr):
        self.edge.append(nr)

    def print(self):
        print("nr="+str(self.nr),end=" (")
        print(",".join( map(str,self.edge)),end="")
        print(")")

t = [ node(0) ]


def floyd():
    for i in range(1, n+1):
        t[i].d = [900000 for j in range(n+1)]
        t[i].d[i] = 0
        t[i].d[0] = 0
    for i in range(1, n+1):
        for j in t[i].edge:
            t[i].d[j] = 1

    for i in range(1, n+1):
        for j in range(1, n+1):
            for k in range(1, n+1):
                if t[j].d[k] > t[j].d[i] + t[i].d[k]:
                    t[j].d[k] = t[j].d[i] + t[i].d[k]

def print_t():
    for i in range(1, n+1):
        t[i].print()

def print_d():
    print("   ",end="")
    for i in range(1, n+1):
        print(str(i),end=" ")
    print()
    for i in range(1, n+1):
        print(str(i),end="  ")
        for j in range(1, n+1):
            if (t[i].d[j] == 900000):
                print("x",end=" ")
            else:
                print( str(t[i].d[j]), end=" ")
        print()

def print_res():
    res = []
    for i in range(1, n+1):
        res.append(sum(map(lambda x: 0 if x == 900000 else x, t[i].d)))
    print(" ".join(map(str,res)))

n = int(input())
x = map(int, input().split())
l = [0]
for a in x:
    l.append(a)

for i in range(1,n+1):
    nd = node(i)
    for j in range(1,n+1):
        if i < j and l[i] > l[j]:
            nd.addEdge(j)
        if i > j and l[i] < l[j]:
           nd.addEdge(j)
    t.append(nd)
floyd()
print_res()