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

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

imposter 조사하기

면접 대비

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

요약
각 마을 주민이 제출한 '사칭범이 아닌 사람' 명단과 사칭범이 최대 k명이라는 조건이 주어질 때, 각 주민이 사칭범일 가능성이 있는지 판정한다.
난이도

보통10점 중 7점

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

문제

당신은 한 마을에 도착했다. 이 마을에는 imposter인 사람과 그렇지 않은 사람이 섞여 있다. 다행히도, 가능한 imposter의 수에는 제한이 있다는 사실을 알고 있다!

당신은 이 마을에서 누가 imposter가 아닌지 알아내려고 한다. 그러기 위해 각 마을 사람에게 imposter가 아닌 몇몇 마을 사람의 명단을 제출하도록 요청한다.

imposter가 아닌 사람은 imposter가 아닌 다른 사람의 이름만 담은 명단을 제출한다. imposter에게는 이런 제약이 없다. imposter의 명단에는 imposter나 imposter가 아닌 사람이 모두 들어갈 수 있다.

각 마을 사람의 명단이 주어졌을 때, 그 사람이 imposter일 가능성이 있는지, 아니면 확실히 imposter가 아닌지 판별하시오.

입력

첫 줄에는 두 정수 nn과 kk가 공백으로 구분되어 주어진다. (1≤k≤n≤5001 \le k \le n \le 500) nn은 마을 사람의 수이고 kk는 가능한 imposter의 최대 수이다. 마을 사람은 1부터 nn까지 번호가 매겨져 있다.

다음 nn개의 줄은 각각 한 마을 사람을 나타내며, ii번째 줄은 ii번 마을 사람의 명단이다. ii번째 줄은 정수 ss로 시작하는데 (0≤s≤n0 \le s \le n), ss는 ii번 마을 사람이 제출한 imposter가 아닌 사람 명단의 길이이다. 이어서 그 명단에 있는 마을 사람을 나타내는 ss개의 서로 다른 정수가 주어진다. 자기 자신이 자기 명단에 들어갈 수도 있다. 한 명단에 들어가는 마을 사람은 모두 서로 다르다.

출력

nn개의 줄을 출력한다. 각 줄에는 정수 하나를 출력한다. ii번째 줄에는 입력의 ii번째 명단에 해당하는 마을 사람이 imposter일 가능성이 있으면 0, 확실히 imposter가 아니면 1을 출력한다.

예제1

  1. 예제 1

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