만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

테니스

면접 대비

시간 제한1초메모리 제한512 MB

요약
n명의 선수에 대해 세 코트의 순위표가 주어질 때, 각 쌍의 경기가 열리는 코트를 정하고 코트별 경기 수와 선수별 승수를 구합니다.
난이도

쉬움10점 중 3점

유형
구현, 배열
정답자
아직 제출이 없습니다

문제

Mirko는 테니스를 아주 좋아합니다. 곧 nn명의 선수가 참가하는 중요한 대회가 열립니다. Mirko는 여러 해 동안 테니스 선수들을 조사해 왔고, 경쟁자들에 대한 다양한 통계를 모았습니다. 그는 잔디, 클레이, 하드 세 가지 코트에서 선수들의 실력을 평가했습니다. 구체적으로, 각 코트마다 선수들의 순위표를 만들었습니다. 순위표의 맨 앞이 가장 강한 선수이고, 맨 뒤가 가장 약한 선수입니다.

이 대회에서는 모든 선수가 다른 모든 선수와 정확히 한 번씩 경기를 합니다. 따라서 총 n(n−1)/2n(n-1)/2 경기가 열립니다. 테니스 경기는 무승부로 끝나지 않으며, 경기가 열리는 코트에서 더 강한 선수가 이깁니다. 주최 측은 이 사실을 알고 있으므로, 승자가 그 코트 순위표에서 가장 높은 자리에 오르는 코트에서 각 경기를 치르기로 했습니다.

두 코트에서 승자의 순위가 같으면, 패자의 순위가 더 좋은 코트를 선택합니다. 그래도 같으면 번호가 작은 코트를 선택합니다.

각 코트에서 치러지는 경기 수와 각 선수의 승수를 구하세요.

입력

첫째 줄에 선수의 수 nn이 주어집니다. 선수들은 1부터 nn까지의 번호로 구분됩니다.

이어지는 세 줄 중 ii번째 줄에는 ii번째 코트의 순위표가 주어집니다. 가장 강한 선수부터 시작하는 1부터 nn까지 정수의 순열입니다.

출력

첫째 줄에 첫 번째, 두 번째, 세 번째 코트에서 치러진 경기 수를 출력합니다.

둘째 줄에는 1번부터 nn번 선수까지 각 선수의 승수를 출력합니다.

힌트

선수 1과 선수 2의 경기는 승자인 선수 1이 1위로 가장 좋은 순위를 가지므로 코트 2에서 치릅니다. 선수 1과 선수 3의 경기는 승자의 순위가 세 코트 모두 같지만, 패자는 코트 2에서 더 좋은 순위를 가집니다. 선수 2와 선수 3의 경기에서는 코트 1과 코트 3이 동점이므로 번호가 작은 코트 1을 선택합니다.

예제2

  1. 예제 1

    입력
    3
    3 2 1
    1 3 2
    3 2 1
    
    예상 출력
    1 2 0
    2 0 1
    
  2. 예제 2

    입력
    4
    4 3 2 1
    3 1 2 4
    1 2 3 4
    
    예상 출력
    3 2 1
    1 0 2 3