#752
Unrated
추격전
원문: English
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

충남대학교 캠퍼스에는 NN (2N51052 \le N \le 5 \cdot 10^5)개의 장소가 있으며, 각 장소 ii (1iN1 \le i \le N)에서 다른 장소 aia_i (aiia_i \neq i)로 향하는 단방향 통로가 하나씩 있다. FF (1FN1 \le F \le N)명의 술래가 있으며, ii번째 술래는 처음에 장소 sis_i (1siN1 \le s_i \le N, 모든 sis_i는 서로 다름)에 위치해 있다. 매 시간 단계마다 모든 술래는 현재 위치한 장소에서 통로를 따라 다음 장소로 반드시 이동한다. 만약 민혁이가 술래와 같은 장소에 있게 되면 민혁이는 잡힌다.

민혁이는 어떤 장소 bb에서 시작한다. 매 시간 단계마다 민혁이는 두 가지 행동 중 하나를 선택할 수 있다. 현재 장소에서 휴식(머무르기)하거나, 통로를 따라 다음 장소로 이동하는 것이다. 민혁이가 이동을 선택하면 술래들과 동시에 이동한다. 민혁이는 영원히 술래에게 잡히지 않는 것을 목표로 한다.

각 시작 장소 bb (1bN1 \le b \le N)에 대해, 민혁이가 영원히 잡히지 않으면서 휴식할 수 있는 최대 횟수를 구하시오.

입력

첫째 줄에 장소의 수 NN과 술래의 수 FF가 공백으로 구분되어 주어진다. (2N51052 \le N \le 5 \cdot 10^5; 1FN1 \le F \le N)

둘째 줄에 각 장소 1,,N1, \ldots, N에서 나가는 통로의 목적지인 a1,a2,,aNa_1, a_2, \ldots, a_N이 공백으로 구분되어 주어진다. (1aiN;aii1 \le a_i \le N; a_i \neq i)

셋째 줄에 각 술래의 시작 장소 s1,s2,,sFs_1, s_2, \ldots, s_F가 공백으로 구분되어 주어진다. (모든 sis_i는 서로 다름)

출력

NN개의 줄을 출력한다. 그중 bb번째 줄에는 민혁이가 장소 bb에서 시작할 때 영원히 잡히지 않으면서 휴식할 수 있는 최대 횟수를 출력한다.

만약 민혁이가 어떤 방법을 써도 영원히 잡히지 않도록 할 수 없다면 -1을 출력한다. 만약 민혁이가 무한히 많이 휴식할 수 있다면 -2를 출력한다.

예제 입력 1

4 1
2 1 4 3
1

예제 출력 1

-1
0
-2
-2

제약 조건

  • 일부 테스트 케이스에서는 N50N \le 50이다.
  • 일부 테스트 케이스에서는 N2000N \le 2\,000이다.
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
Unrated0명 투표
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.