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

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

비치 파티

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

요약
음악 스타일에 대한 선호 순서가 주어질 때, s개의 무대에 서로 다른 스타일을 배정해 당신과 같은 무대에 오는 사람 수를 최대로 만든다.
난이도

보통10점 중 6점

유형
완전 탐색, 조합론, 그리디, 구현
정답자
아직 제출이 없습니다

문제

해변에서의 하루가 끝날 무렵, 여러 개의 무대가 있는 파티가 열린다. 각 무대는 하나의 음악 장르를 연주하고, 각 사람은 지금 연주되는 장르들 중에서 자신이 가장 좋아하는 장르를 연주하는 무대로 이동한다. 모두가 자기가 선호하는 음악을 찾아가기 때문에, 당신은 친구들 대부분과 다른 무대에 있게 될 수도 있다.

예를 들어 무대가 두 개 있고 한쪽에서는 그레고리오 성가를, 다른 쪽에서는 폴카를 연주한다고 하자. 당신은 성가를 더 좋아하지만 가장 친한 친구는 폴카를 더 좋아하므로 다른 무대로 가 버린다. 만약 그 무대가 폴카 대신 (그 친구가 싫어하는) 컨트리를 연주했다면, 친구는 당신과 함께 성가 무대에 왔을 것이다. 그렇다면 어떤 장르들을 무대에 배정해야 당신과 같은 무대에 남는 친구의 수가 최대가 될까?

형식적으로, 무대가 ss개, 음악 장르가 m≥sm \ge s개 있다. 각 무대에는 정확히 하나의 장르가 배정되며, 같은 장르를 두 무대에 배정할 수는 없다. 당신을 포함한 모든 사람은 전체 mm개 장르에 대한 하나의 완전한 선호 순서를 가지고 있으며, 배정된 장르들 중 가장 선호하는 장르를 연주하는 무대로 간다. 당신과 같은 무대에 있는 친구(자신 포함)의 수를 최대로 만드는 장르 배정을 구하여라.

입력

첫 번째 줄에는 데이터 집합의 개수 K≥1K \ge 1이 주어진다. 이어서 다음 형식의 데이터 집합이 KK개 주어진다.

각 데이터 집합의 첫 줄에는 세 정수 ss, mm, nn이 주어지며, 각각 무대의 수, 음악 장르의 수, 친구의 수를 의미한다 (1≤s≤101 \le s \le 10, 1≤m≤201 \le m \le 20, 1≤n≤1001 \le n \le 100, m≥sm \ge s). 이어서 nn개의 줄에 각 사람의 정보가 주어지며, 그중 첫 번째 사람이 당신이다. 각 줄은 장르 1,2,…,m1, 2, \ldots, m의 순열로, 가장 선호하는 장르부터 가장 덜 선호하는 장르 순으로 나열되어 있다.

출력

각 데이터 집합에 대해, 먼저 "Data Set x:" 형식의 줄을 출력한다. 여기서 xx는 데이터 집합의 번호이다(1부터 시작). 그다음 줄에, 가능한 모든 장르 배정 중에서 당신과 같은 음악을 듣는 친구(자신 포함)의 최대 수를 출력한다. 실제 배정 자체는 출력할 필요가 없다.

예제1

  1. 예제 1

    입력
    2
    2 3 2
    1 2 3
    3 2 1
    2 4 3
    1 2 3 4
    2 3 4 1
    3 4 1 2
    
    예상 출력
    Data Set 1:
    1
    Data Set 2:
    3