만드는 중입니다

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

논문 편집

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

요약
여러 정리가 다른 정리에 의존하고 각 정리마다 비용이 다른 여러 증명이 있을 때, 정리 0을 증명하는 최소 총비용을 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 그래프, 비트 연산, DFS
정답자
아직 제출이 없습니다

문제

다비드는 증명 완성 협회 회보에 실을 논문을 쓰고 있다. 논문에서 여러 정리를 증명하는데, 정리마다 증명을 하나씩 준비했고 욕심이 많아서 어떤 정리에는 증명을 여러 개 준비했다. 한 정리의 증명은 다른 정리 몇 개를 근거로 삼는다.

논문을 실으려면 길이를 최대한 줄여야 한다. 다비드가 정말로 보이고 싶은 것은 주 정리인 정리 00 하나뿐이다. 증명마다 필요한 단어 수는 이미 어림잡아 두었다. 논문의 가장 짧은 길이를 구하라.

정리 00을 증명하려면 그 정리의 증명 중 하나를 골라 논문에 싣고, 그 증명이 근거로 삼는 정리를 모두 같은 논문 안에서 증명해야 한다. 근거로 삼는 정리도 같은 방식으로 증명 하나를 골라 싣는다. 같은 정리를 두 번 싣지는 않으므로, 여러 증명이 같은 정리를 근거로 삼아도 그 정리의 길이는 한 번만 센다. 논문의 길이는 실은 증명의 길이를 모두 더한 값이다. 순환 논법은 허용하지 않는다. 즉 어떤 정리도 직접이든 간접이든 자기 자신을 근거로 삼아 증명할 수 없다.

입력

첫 줄에 정리의 개수 nn (1≤n≤201 \le n \le 20)이 주어진다.

이어서 각 정리 ii (0≤i≤n−10 \le i \le n-1)에 대해 다음이 번호 순서대로 주어진다.

  • 한 줄에 정리 ii의 증명 개수 pip_i (1≤pi≤101 \le p_i \le 10)가 주어진다.
  • 다음 pip_i개의 줄에 각각 ll, kk, d0,…,dk−1d_0, \dots, d_{k-1}이 공백으로 구분되어 주어진다. ll (0≤l≤1060 \le l \le 10^6)은 그 증명의 길이, kk (0≤k≤n−10 \le k \le n-1)는 그 증명이 근거로 삼는 정리의 개수, djd_j (0≤dj≤n−10 \le d_j \le n-1)는 근거로 삼는 정리의 번호다.

정리 00을 증명하는 방법은 적어도 하나 있다.

출력

다비드의 논문이 가질 수 있는 가장 짧은 길이를 정수 하나로 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    2
    2
    10 0
    3 1 1
    1
    4 1 0
    
    예상 출력
    10
    
  2. 예제 2

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