시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 (추가 시간 없음) | 1024 MB | 100 | 49 | 12 | 37.500% |
서울대학교에서 포켓몬 대회를 연다는 소식에, 많은 사람들이 참가를 신청했다.
대회 참가자들은 포켓몬 대여소를 자유롭게 사용할 수 있다. 포켓몬은 종마다 거래가치가 모두 다르며, 거래가치가 높은 종을 맡기면 그보다 낮은 거래가치를 지닌 종의 포켓몬을 대여할 수 있다.
종은 1번 종부터 17번 종까지 있으며, 종 번호가 높을수록 거래 가치가 높다. 예를 들어, 3번 종은 2번 종보다 거래 가치가 높다.
참가자가 가지고 있는 포켓몬들의 리스트를 그 참가자의 조합이라고 하자. 대회 관람의 재미를 위해서는 최대한 다양한 종의 포켓몬이 나오는 것이 좋기 때문에, 이번 대회에서는 포켓몬 조합은 서로 다른 종의 포켓몬만을 포함해야 한다는 규칙이 있다.
다음 두 조건을 만족할 때 참가자 B의 조합이 참가자 A의 조합의 하위 호환이라고 한다.
대회 구경을 좋아하는 케레는 재미를 위해, 각 참가자가 보유한 포켓몬 조합을 보고 참가자에게 파워 지수를 부여하려고 한다. 참가자 X의 파워 지수는, 전체 참가자 중 조합이 참가자 X의 하위 호환인 사람의 수로 정의한다.
전체 참가자들의 포켓몬 조합이 주어질 때, 각 참가자의 파워 지수를 구하시오.
첫째 줄에 참가자의 수 N이 주어진다. (1 ≤ N ≤ 100 000)
둘째 줄부터 (N + 1)번째 줄까지 참가자가 가지고 있는 포켓몬에 대한 정보가 주어진다.
(i + 1)번째 줄의 첫 번째 정수로 i번째 사람이 보유한 포켓몬 개수 ci가 주어진다. (1 ≤ ci ≤ 17)
이후 공백을 두고 ci개의 정수 pj가 오름차순으로 주어진다. (1 ≤ pj ≤ 17; pj < pj+1)
이는 i번째 사람이 보유한 포켓몬 종 번호를 순서대로 나열한 것이다.
첫째 줄에 총 N개의 정수를 공백으로 구분하여 출력한다. i번째 정수는 i번째 참가자의 파워 지수를 의미한다.
4 1 1 1 2 2 1 4 2 2 3
1 2 1 1
3 1 1 1 1 1 1
3 3 3
입력의 2번째 줄의 내용이 3 1 2 4
라면, 1번째 참가자는 포켓몬을 3마리 보유하고 있으며, 이는 각각 1번 종, 2번 종, 4번 종 포켓몬임을 의미한다.
University > 서울대학교 > 2022 서울대학교 프로그래밍 경시대회 > Division 2 H번