만드는 중입니다

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

SCCC 신입 부원 모집하기

면접 대비

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

요약
점수가 높은 순서로 지원자를 K개 스터디 그룹에 배정합니다. 기존 배정을 옮겨서라도 자리가 남는 경우에만 지원자를 받아들이는 문제입니다.
난이도

보통10점 중 5점

유형
그리디, 그래프
정답자
아직 제출이 없습니다

문제

SCCC의 회장인 찬솔이는 2023년 1학기 신입 부원 선발을 진행하고 있다. SCCC는 2023년 1학기에 정원이 XX명인 스터디 그룹을 KK개 운영하며, 새로 들어오는 신입 부원은 KK개의 스터디 그룹 중 정확히 하나에 참가해야 한다. 참가할 수 있는 스터디 그룹이 없으면 합격할 수 없으므로, 모든 지원자는 참가할 수 있는 스터디 그룹을 한 개 이상 골라 두었다.

찬솔이는 공정하고 엄격한 심사를 거쳐 NN명의 지원자에게 서로 다른 점수를 매겼다. 신입 부원을 스터디 그룹에 배정하기 위해 점수가 높은 사람부터 낮은 사람 순으로 정렬한 뒤, 한 명씩 배정하려고 한다.

점수가 ii번째로 높은 사람을 배정하는 상황을 생각해 보자. 지금까지 스터디에 배정된 사람들의 집합을 그대로 유지하면서 ii번째 사람을 넣을 수 있으면 그 사람을 배정한다. 반대로 지금까지 배정된 사람들을 어떻게 옮기더라도 ii번째 사람이 들어갈 자리가 없으면 그 사람은 배정되지 않는다.

예를 들어 N=5N=5, K=2K=2, X=2X=2이고, 점수가 높은 사람부터 참가할 수 있는 스터디 그룹이 {1},{1,2},{1},{1},{2}\{1\}, \{1,2\}, \{1\}, \{1\}, \{2\}라고 하자.

점수가 가장 높은 사람과 두 번째로 높은 사람이 모두 1번 그룹에 배정되었고, 세 번째 사람을 배정해야 한다고 하자. 두 번째 사람을 2번 그룹으로 옮기고 세 번째 사람을 1번 그룹에 배정하면, 지금까지 배정된 집합을 유지하면서 세 번째 사람을 넣을 수 있다.

반면 1번 그룹에 첫 번째와 세 번째 사람, 2번 그룹에 두 번째 사람이 있는 상태에서는 네 번째 사람을 배정할 방법이 없다. 하지만 점수가 가장 낮은 사람은 2번 그룹에 들어갈 수 있다. 최종 결과는 1번 그룹에 첫 번째와 세 번째 사람, 2번 그룹에 두 번째와 다섯 번째 사람이 배정되는 것이다.

찬솔이는 이 규칙에 따라 지원자를 스터디 그룹에 배정하려고 한다. 스터디 그룹에 배정되는 사람의 수와 각 스터디 그룹에 배정된 지원자의 목록을 구하는 배정 프로그램을 작성하자.

입력

첫째 줄에 지원자 수 NN, 스터디 그룹의 개수 KK, 각 스터디 그룹의 정원 XX가 공백으로 구분되어 주어진다.

둘째 줄부터 NN개의 줄에 걸쳐, ii번째 줄에 ii번째 지원자의 정보가 주어진다. (1≤i≤N1\le i\le N)

지원자의 정보는 한 줄로 주어진다. 줄의 처음에는 참가할 수 있는 스터디 그룹의 개수 CiC_i가 주어지고, 이어서 참가할 수 있는 CiC_i개의 스터디 그룹 번호 Ai,1,Ai,2,⋯ ,Ai,CiA_{i,1},A_{i,2},\cdots ,A_{i,C_i}가 공백으로 구분되어 주어진다.

N+2N+2번째 줄에는 각 학생의 점수 B1,B2,⋯ ,BNB_1,B_2,\cdots ,B_N이 공백으로 구분되어 주어진다.

출력

첫째 줄부터 KK개의 줄에 걸쳐, ii번째 줄에 ii번 그룹에 배정된 사람의 정보를 출력한다. (1≤i≤K1\le i\le K)

각 줄의 처음에는 해당 스터디 그룹에 배정된 사람의 수를 출력하고, 이어서 배정된 사람의 번호를 공백으로 구분하여 출력한다.

답이 여러 개이면 아무거나 출력해도 된다. 배정된 사람의 번호를 출력하는 순서는 상관없다.

제한

  • 1≤N,K,X≤151\leq N,K,X\leq 15
  • 1≤K×X≤151\leq K\times X\leq 15
  • 1≤Ci≤K1\leq C_i\leq K
  • 1≤Ai,j≤K1\leq A_{i,j}\leq K (1≤i≤N,1≤j≤Ci)(1\le i\le N,1\le j\le C_i)
  • j≠kj\ne k이면 Ai,j≠Ai,kA_{i,j}\ne A_{i,k}이다. (1≤i≤N,1≤j,k≤Ci)(1\le i\le N,1\le j,k\le C_i) 즉, 각 행의 원소는 모두 서로 다르다.
  • 1≤Bi≤1091\leq B_i\leq 10^9 (1≤i≤N)(1\le i\le N)
  • i≠ji\ne j이면 Bi≠BjB_i\ne B_j이다. (1≤i,j≤N)(1\le i,j\le N) 즉, BB의 원소는 모두 서로 다르다.
  • 입력으로 주어지는 수는 모두 정수이다.

예제1

  1. 예제 1

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