만드는 중입니다

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

슬픈 춤

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

요약
순열 a와 b가 주어졌을 때, a의 양의 거듭제곱이 b와 같아지는 k가 있는지 판별합니다.
난이도

보통10점 중 6점

유형
배열, 정수론, 구현
정답자
아직 제출이 없습니다

문제

플랫랜드에서는 매년 댄스 대회가 열린다. NN시에서 nn명의 댄서로 구성된 팀이 왔고, 오늘이 대회 날이다.

공연은 다음과 같이 진행된다. 댄서에게는 1부터 nn까지 번호가 붙어 있고, 시작할 때 ii번 댄서는 ii번 자리에 선다. 그 뒤 미리 정해진 프로그램 aa에 따라 춤을 춘다. 매 분마다 aia_i번 자리에 있던 댄서가 ii번 자리로 옮겨 간다. 모든 aia_i는 서로 다르다. 팀은 ii번 댄서가 최종적으로 bib_i번 자리에 오도록 대열을 맞춰야 한다. 모든 bib_i도 서로 다르다. 이후 공연이 끝나면 심사위원이 기술과 예술성을 채점한다. 채점할 것이 없으면 안 되므로 공연은 최소 1분 동안 이어져야 한다.

올해 참가자들은 심사위원이 결과를 조작했을지도 모른다고 의심한다. 프로그램 aa를 따르면 요구된 대열 bb에 끝내 도달하지 못해서 자동으로 패배하게 되는 것이 아니냐는 생각이다.

팀은 도움을 요청한다. 프로그램 aa와 요구된 대열 bb가 주어졌을 때, 시작 후 kk분이 지났을 때 모든 ii에 대해 ii번 댄서가 bib_i번 자리에 있게 되는 양의 정수 kk가 존재하는지 판단하라.

입력

첫째 줄에 댄서의 수 nn (1≤n≤1061 \leq n \leq 10^6)이 주어진다. 둘째 줄에는 프로그램 aa를 나타내는 정수 nn개 a1,…,ana_1, \ldots, a_n (1≤ai≤n1 \leq a_i \leq n)이 주어진다. aa에는 1부터 nn까지의 정수가 각각 정확히 한 번씩 나타난다. 셋째 줄에는 요구된 대열 bb를 나타내는 정수 nn개 b1,…,bnb_1, \ldots, b_n (1≤bi≤n1 \leq b_i \leq n)이 주어진다. bb에도 1부터 nn까지의 정수가 각각 정확히 한 번씩 나타난다.

출력

각 테스트 케이스에 대해, kk분 후 모든 댄서가 요구된 자리에 있게 되는 분 수 kk가 존재하면 "Yes"를, 그런 kk가 존재하지 않으면 "No"를 출력하라.

힌트

첫 번째 예제에서 0분일 때 댄서들은 1 2 3 41\,2\,3\,4 순서로 서 있다. 하지만 공연은 최소 1분 동안 이어져야 하므로 k=0k = 0은 맞지 않는다. 이후 이동은 다음과 같다.

  • 1분 후 2 3 4 12\,3\,4\,1
  • 2분 후 3 4 1 23\,4\,1\,2
  • 3분 후 4 1 2 34\,1\,2\,3
  • 4분 후 1 2 3 41\,2\,3\,4

4분 후에 요구된 대열에 도달하므로 k=4k = 4가 조건을 만족하고, 답은 "Yes"이다.

두 번째 예제에서는 댄서들이 항상 제자리에 머무르므로 요구된 대열에 결코 도달하지 못하고, 답은 "No"이다.

예제2

  1. 예제 1

    입력
    4
    2 3 4 1
    1 2 3 4
    
    예상 출력
    Yes
    
  2. 예제 2

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