import sys
n = int(input())
# arr = [list(map(int, input().split())) for _ in range(3)]
arr = []
value = [] # 총점수 계산
for i in range(3):
tmplst = list(map(int, input().split()))
tmp = []
tmpval = [0] * n
for j in range(len(tmplst)):
tmp.append((tmplst[j], j))
tmpval[j] += tmplst[j]
arr.append(tmp)
totalval = []
for i in range(n):
totalval.append([0, i])
# pair을 만들고, 정렬시키자.
prize = [1] * n
for i in range(3): # 총 3번의 대회 동안
arr[i].sort(key = lambda x : x[0], reverse = True)
rank = 1
curnum = arr[i][0][0]
totalval[arr[i][0][1]][0] += arr[i][0][0]
for j in range(1, n):
if curnum == arr[i][j][0]: # 점수가 같다면, 같은 등수 줘야됨.
prize[arr[i][j][1]] = rank
else :
rank = j + 1
prize[arr[i][j][1]] = rank
curnum = arr[i][j][0]
totalval[arr[i][j][1]][0] += arr[i][j][0]
print(*prize)
prize = [1] * n
totalval.sort(key = lambda x : x[0], reverse = True)
rank = 1
curnum = totalval[0][0]
for j in range(1, n):
if curnum == totalval[j][0]: # 점수가 같다면, 같은 등수 줘야됨.
prize[totalval[j][1]] = rank
else :
rank = j + 1
prize[totalval[j][1]] = rank
curnum = totalval[j][0]
print(*prize)
# prize = [1] * n # 등수 계산
# for i in range(3): # 총 3번의 대회 동안
# for j in range(n) : # 총 n명의 사람에 대해
# for k in range(j + 1, n) : # j부터 n까지
# if arr[i][j] > arr[i][k] :
# prize[k] += 1
# elif arr[i][j] < arr[i][k] :
# prize[j] += 1
# value[j] += arr[i][j]
# print(*prize)
# prize = [1] * n
# for j in range(n) : # 총 n명의 사람에 대해
# for k in range(j + 1, n) : # j부터 n까지
# if value[j] > value[k] :
# prize[k] += 1
# elif value[j] < value[k] :
# prize[j] += 1
# print(*prize)
아래의 주석처리된 것은 n^2이기에, 시간초과가 뜬다
위는 nlogn이기에 시간초과가 뜨지 않는다.
pair을 만든 다음, 정렬시켰다.
점수가 같은 경우엔 같은 점수를 줘야 하기에, curnum을 두어 이전 성적 정보를 유지할 수 있도록 했다.
lst = list(map(int, input().split()))
을 알아둬야 겠다. 잊어버렸기 때문.
'성우리뷰' 카테고리의 다른 글
[softeer] 업무처리 (0) | 2023.04.10 |
---|---|
[프로그래머스] 둘만의 암호 (0) | 2023.04.08 |
[Softeer] 금고 관리 (0) | 2023.03.27 |
현대 이미지 프로세싱 (0) | 2022.03.22 |
현대 좌석관리 (0) | 2022.03.10 |