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

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

실험

면접 대비

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

요약
각 단계가 두 장치 중 하나를 필요로 하고 선행 조건이 있을 때, 장치를 바꾸는 횟수가 최소가 되도록 단계를 수행하는 순서를 구한다.
난이도

보통10점 중 6점

유형
그래프, 위상 정렬, 그리디, 동적 계획법
정답자
아직 제출이 없습니다

문제

오늘 이고르는 자기장 속에서 화학 반응이 진행되는 과정을 연구하는 실험을 할 수 있는 허가를 드디어 받았다. 실험에는 자기장 발생기와 시약을 연결하는 조작기, 두 설비가 사용된다.

실험은 여러 단계로 나뉘며, 어떤 단계는 다른 단계들을 모두 마친 뒤에만 수행할 수 있다. 실험을 진행하는 방법이 적어도 하나는 존재한다는 것은 알려져 있다. 각 단계에서 이고르는 두 설비 중 정확히 하나, 즉 발생기나 조작기 중 하나를 조작해야 한다.

이고르는 시간을 아끼기 위해 설비 제어대 사이를 최소한으로 이동하면서 실험을 끝내고 싶어 한다. 이를 위해 어떤 순서로 단계를 수행해야 하는지 구해 주자.

입력

첫째 줄에 실험 단계의 수 nn이 주어진다 (1≤n≤1001 \le n \le 100).

다음 nn개의 줄에는 각 단계의 설명이 주어진다. 단계에 1부터 nn까지 임의의 순서로 번호를 붙였을 때, ii번째 줄은 ii번 단계를 설명한다. 각 단계는 정수들의 나열로 설명된다. 첫 번째 수는 이 단계에서 이고르가 발생기를 조작하면 0, 조작기를 조작하면 1이다. 그다음에는 이 단계를 수행하기 전에 수행해야 하는 단계의 수 r_ir\_i가 주어진다. 그 뒤에는 그 단계들의 번호가 r_ir\_i개 주어지며, 모두 1부터 i−1i - 1 사이의 서로 다른 정수이다.

출력

첫째 줄에 이고르가 해야 하는 최소 이동 횟수를 출력한다. 둘째 줄에는 1부터 nn까지의 수를 나열한 순열, 즉 단계를 수행해야 하는 순서를 출력한다. 답이 여러 개라면 그중 아무거나 출력한다.

예제1

  1. 예제 1

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