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

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

로봇 추적

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

요약
영역 인접 관계와 섞인 위치 기록이 주어질 때 1번 영역에서 출발한 로봇들의 이동으로 설명되는 최소와 최대 로봇 수를 구합니다.
난이도

어려움10점 중 8점

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

문제

여러 대의 로봇이 한 구역 안을 돌아다니면서 자기 위치를 서버로 보낸다. 서버는 로봇이 보낸 위치의 흐름만 받아 보고, 구역 안에 로봇이 몇 대 있는지 알아내야 한다.

구역은 닫힌 다각형이고, 서로 겹치지 않는 영역 1,…,N1, \dots, N으로 나뉘어 있다. 모든 로봇은 처음에 영역 11에 있다가 움직이기 시작한다. 로봇은 지금 있는 영역과 인접한 영역으로만 이동하고, 새 영역에 들어갈 때마다 그 영역의 번호를 서버로 보낸다. 한 로봇이 같은 영역을 여러 번 드나들어도 된다.

서버는 영역 번호가 길게 이어진 스트림 하나를 받는다. 각 번호를 어느 로봇이 보냈는지는 알 수 없다.

모든 로봇이 영역 번호를 적어도 한 번은 보냈다고 하자. 이런 스트림을 만들어 낼 수 있는 로봇 수의 최솟값과 최댓값을 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 영역의 수 NN (1≤N≤1001 \le N \le 100)과 서버가 받은 스트림의 길이 MM (1≤M≤2001 \le M \le 200)이 주어진다. 이어지는 NN개의 줄 중 ii번째 줄은 영역 ii를 설명한다. 각 줄은 영역 ii와 인접한 영역의 수 cic_i로 시작하고, 그 뒤에 인접한 영역의 번호가 cic_i개 온다. 그다음 줄에는 서버가 받은 순서 그대로 영역 번호 MM개가 주어진다. 입력은 0 0만 있는 줄로 끝난다.

주어지는 스트림은 항상 어떤 로봇 무리가 실제로 만들어 낼 수 있는 스트림이다.

출력

각 테스트 케이스마다 구역 안에 있을 수 있는 로봇 수의 최솟값과 최댓값을 공백으로 구분해 한 줄에 출력한다.

예제1

  1. 예제 1

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