순회공연

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

요약
N명의 가수가 각자 시작 도시에서 일방통행 도로를 따라 하루에 한 칸씩 이동할 때, K명 이상이 같은 도시에 모이는 가장 빠른 날을 구하거나 없으면 -1을 출력한다.
난이도

보통10점 중 7점

유형
그래프, 이분 탐색, DFS, 구현
정답자
아직 제출이 없습니다

문제

홍익 나라에는 11번부터 NN번까지 NN개의 도시가 있다. 각 도시는 다른 도시로 가는 일방통행 도로 하나씩을 가지고 있다. NN명의 가수가 내일부터 순회공연을 하는데, 각 가수는 특정 도시에서 시작해 매일 도로를 따라 이동하면서 공연을 한다. 순회공연을 하는 도중 어떤 도시에서 KK명 이상의 가수가 공연을 하게 되는 경우, 공연자가 너무 많아 그날에는 밤샘 공연을 한다.

홍익이는 지금까지 여러 공연들을 봐 왔지만 밤샘 공연을 본 적은 없어서, 이번 순회공연에서 밤샘 공연을 하게 된다면 꼭 보러 가려고 한다. 홍익이를 위해 밤샘 공연을 하게 될지 미리 알아보고, 하게 된다면 가장 먼저 하는 밤샘 공연은 순회공연 며칠 차인지 구해보자. 내일 하는 순회공연이 11일 차이다.

입력

첫째 줄에 도시의 수 NN, 밤샘 공연이 일어나는 최소 공연자 수 KK가 주어진다. (2≤N≤100 000, 2≤K≤N2 \le N \le 100\ 000,\ 2 \le K \le N)

다음 줄에 NN개의 정수 A_1,A_2,⋯ ,A_NA\_1, A\_2, \cdots, A\_N이 공백으로 구분되어 주어진다. ii번 도시에서 A_iA\_i번 도시로 가는 일방통행 도로가 있음을 의미한다. (1≤A_i≤N, i≠A_i1 \le A\_i \le N,\ i \ne A\_i)

다음 줄에 NN개의 정수 S_1,S_2,⋯ ,S_NS\_1, S\_2, \cdots, S\_N이 공백으로 구분되어 주어진다. ii번째 가수는 S_iS\_i번 도시에서 순회공연을 시작함을 의미한다. (1≤S_i≤N1 \le S\_i \le N)

11일 차에 S_iS\_i번 도시에서 공연을 하고, xx일 차에 cc번 도시에서 공연을 했다면 x+1x+1일 차에는 A_cA\_c번 도시에서 공연을 한다.

출력

밤샘 공연을 하게 된다면, 가장 먼저 하는 밤샘 공연이 순회공연 며칠 차인지 출력한다. 밤샘 공연이 일어나지 않는 경우 -1을 출력한다.

예제1

  1. 예제 1

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