아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

서열 사회

면접 대비

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

요약
각 그룹이 새 서열, 즉 다른 그룹에 있는 자신보다 낮은 서열 사람 수를 주면 모든 사람의 원래 서열을 복원한다.
난이도

보통10점 중 4점

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

문제

N명의 사람이 살고 있는 마을이 있고, 서열에 따라 1번부터 N번까지 번호가 배정되어 있다.

어느 날 내분이 일어나 K개의 그룹으로 나누어졌고, 이제 각 K개의 그룹 내에서 서열을 다시 매기려고 한다. 각 그룹마다 새로운 서열은 나누어지기 전 자신보다 서열이 낮았던 사람 중 현재 다른 그룹에 있는 사람의 수이다.

예를 들어, 10명이 3개의 그룹으로 나누어진 상태가 있고, 기존 서열이 [2, 5, 9], [1, 7, 8], [3, 4, 6, 10]과 같은 경우일 때, 새로 매긴 서열은 [1, 3, 6], [0, 5, 5], [2, 2, 3, 6]이 된다. 나누어 지기 전 5번인 사람은 5보다 작으면서 다른 그룹에 속한 사람이 1, 3, 4번이므로 서열은 3이 된다.

K개의 그룹으로 나누어진 후 새로 매긴 서열의 정보가 주어진다. 나누어지기 전 각 사람의 서열을 구해보자.

입력

첫째 줄에 N과 K가 주어진다. 둘째 줄부터 K개의 줄에는 그룹의 정보가 주어진다. 그룹의 정보는 음이 아닌 정수 Ci로 시작하고, 이 값은 그 그룹에 있는 사람의 수를 의미한다. 이후 새로 매긴 서열의 정보가 공백으로 구분되어 주어진다.

출력

첫째 줄부터 K번째 줄까지 각 줄에 사람들의 원래 서열을 오름차순으로 공백으로 구분해 출력한다.

제한

  • 1 ≤ K ≤ N ≤ 1,000

예제1

  1. 예제 1

    입력
    10 3
    3 3 1 6
    3 0 5 5
    4 6 2 3 2
    
    예상 출력
    2 5 9
    1 7 8
    3 4 6 10