페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#6158

코드 작성 대회 1s 1024MB

문제

올해는 처음으로 국제적인 아름다운 코드 작성 대회가 개최됩니다!

대회에 참가하는 참가자는 1부터 n까지의 번호로 표시되며, 각각은 코드를 작성했습니다.

그들의 코드는 컴퓨터 과학자 협회에 의해 평가됩니다. 협회는 회장과 협회 회원으로 구성되어 있습니다. 회장은 코드에 점수를 부여하는 한 방법이 있고, 협회 회원들은 다른 방법으로 점수를 부여합니다.

회장의 점수:

회장은 본인의 주관대로 코드를 가장 아름다운 것부터 가장 덜 아름다운 것까지 순위를 매깁니다. 첫 번째 코드에는 n점이 주어지고, 그 다음 코드마다 이전 코드보다 한 점씩 줄어듭니다.

협회 회원의 점수:

각 협회 회원은 각자 가장 아름다운 것으로 생각하는 코드에 투표합니다. 각 협회 회원이 투표한 후에는 협회 회원들로부터 받은 투표 수에 따라 코드가 내림차순으로 순위가 매겨집니다.

첫 번째 코드 (가장 많은 투표를 받은 코드)에는 n점이 주어지고, 그 다음 코드마다 이전 코드보다 한 점씩 줄어듭니다.

총점:

각 코드의 총점은 회장이 부여한 점수와 협회 회원이 부여한 점수의 합과 같습니다.

당신의 임무는 점수의 수에 따라 코드의 순서를 내림차순으로 출력하는 것입니다.

만약 더 많은 코드가 동일한 점수를 가진 경우, 더 우수한 것은 협회 회원으로부터 더 많은 점수를 획득한 것입니다.


입력

첫 번째 줄에는 참가자의 수를 나타내는 정수 n (1 \leq n \leq 50)이 포함되어 있습니다.

두 번째 줄에는 n개의 정수 a_i (1 \leq a_i \leq n)가 포함되어 있습니다. 여기서 i번째 정수는 회장이 i번째로 순위 매긴 코드의 레이블을 나타냅니다. 회장의 순위는 가장 아름다운 것부터 가장 아름다운 것까지의 순서로 주어지며, 모든 레이블은 정확히 한 번씩 1부터 n까지 포함합니다.

세 번째 줄에는 n개의 정수 b_i (0 \leq b_i \leq 200)가 포함되어 있습니다. 여기서 i번째 정수는 협회 회원들로부터 받은 i번째 코드의 투표 수를 나타냅니다. 동일한 투표 수를 받은 두 코드는 없습니다.


출력

n개의 줄에 걸쳐 코드의 순위를 내림차순으로 출력하세요.

각 줄은 "[순위]. Kod[레이블] ([획득한 점수])" 형식이어야 하며, 여기서 [순위]는 랭킹에서 코드의 순위이고 [레이블]은 코드의 레이블이며, [획득한 점수]는 코드가 얻은 점수입니다.

예를 들어, 첫 번째 자리가 레이블이 3이고 12점을 획득한 코드라면 첫 번째 줄은 "1. Kod03 (12)"입니다.


부분문제

번호 점수 조건
#134점

모든 코드에 대해 협회 회원으로부터 받은 투표 수가 협회 회원이 부여한 점수와 같으며, 동일한 총점을 획득한 두 코드는 없습니다.

#238점

동일한 총점을 획득한 두 코드는 없습니다.

#328점

추가 제약 조건 없음.


예제 #1

3
1 2 3
50 10 20
1. Kod01 (6)
2. Kod03 (3)
3. Kod02 (3)

Kod03과 Kod02는 동일한 점수를 가지고 있지만, Kod03은 협회 회원들로부터 더 많은 투표를 받았으므로 더 우수하게 순위가 매겨집니다.


예제 #2

5
5 2 4 1 3
4 5 2 1 3
1. Kod02 (9)
2. Kod05 (8)
3. Kod01 (6)
4. Kod04 (4)
5. Kod03 (3)

회장은 Kod05를 가장 아름다운 것으로 선정하여 n = 5점을 획득했습니다.


예제 #3

7
6 3 2 1 5 4 7
200 56 11 0 13 105 12
1. Kod06 (13)
2. Kod01 (11)
3. Kod02 (10)
4. Kod03 (8)
5. Kod05 (7)
6. Kod07 (4)
7. Kod04 (3)

출처

COCI 2023/2024 Contest #3 1번

로그인해야 코드를 작성할 수 있어요.