만드는 중입니다

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

아홉 명의 심판

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

요약
n명의 심사위원 선호 순위로 k개 문제 중 p개를 고르는 무작위 교체 과정에서 무한히 다시 나타날 수 있는 문제 집합을 찾습니다.
난이도

보통10점 중 7점

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

문제

대회에 제안된 문제는 kk개이고, 그중 정확히 pp개를 반드시 골라 결승 문제 세트로 정해야 한다.

문제는 nn명의 심판이 평가했다. 각 심판은 제안된 모든 문제를 담은 선호 순위표를 하나씩 가지고 있으며, 가장 좋아하는 문제부터 가장 싫어하는 문제 순으로 적혀 있다.

XCPC 결승전은 아직 멀었고, 열릴지조차 아무도 모른다. 그래서 실제 문제 세트는 무한히 계속되는 절차로 정한다.

처음에 t=0t = 0이고, S0S_0은 제안된 kk개 문제에서 균등한 확률로 무작위 선택한 pp개 문제를 담는다. 이후 다음 과정을 무한히 반복한다.

  • i∈Sti \in S_t이고 j∉Stj \notin S_t인 문제 ii, jj를 균등한 확률로 고른다.
  • 최소 (n+1)/2(n+1)/2명의 심판이 선호 순위표에서 jj를 ii보다 앞에 두었다면 St+1=St∖{i}∪{j}S_{t+1} = S_t \setminus \{i\} \cup \{j\}로 한다. 그렇지 않으면 St+1=StS_{t+1} = S_t로 한다.
  • tt를 1 증가시킨다.

집합 SS가 plausible하다는 것은, 양의 확률 임계값 ε\varepsilon가 존재하여 P(St=S)>εP(S_t = S) > \varepsilon인 시점 tt가 무한히 많다는 뜻이다. 수식으로 쓰면 다음과 같다.

SS is plausible   ⟺  ∃ε>0 ∀T≥0 ∃t≥T:P(St=S)>ε\iff \exists \varepsilon > 0\ \forall T \ge 0\ \exists t \ge T: P(S_t = S) > \varepsilon

입력

첫 줄에 정수 nn, kk, pp가 주어진다 (1≤n≤91 \le n \le 9; nn은 홀수; 1≤p<k≤50 0001 \le p < k \le 50\,000). 각각 심판의 수, 제안된 문제의 수, 고를 문제의 수이다.

이어지는 nn개 줄에는 각각 정수 ai,1,ai,2,…,ai,ka_{i,1}, a_{i,2}, \ldots, a_{i,k} (1≤ai,j≤k1 \le a_{i,j} \le k, 한 줄 안의 값은 모두 서로 다르다)가 주어진다. ai,1a_{i,1}은 ii번째 심판이 가장 좋아하는 문제, ai,2a_{i,2}는 두 번째로 좋아하는 문제이다.

출력

1부터 kk 사이의 서로 다른 정수 pp개를 순서에 상관없이 출력한다. 출력은 plausible한 문제 세트 하나이면 된다.

힌트

예제 테스트 케이스에서 다른 가능한 답은 1 2 5와 2 4 5이다.

예제1

  1. 예제 1

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