에프순열
시간 제한2초메모리 제한256 MB
순열 p와 1번, 2번 위치를 맞바꾸는 연산을 임의 순서로 여러 번 적용해 위치 a의 물체가 위치 b로 갈 수 있는지 각 질의마다 판정한다.
문제
에프순열이란 1부터 n까지의 수를 나열한 순열 z 가운데 처음 두 원소를 서로 바꾼 것, 즉 z = [2, 1, 3, 4, ..., n]을 말한다.
에프순열 z 와 1부터 n까지의 수를 나열한 순열 p = [p1, p2, ..., p**n]가 주어진다. 1부터 n까지 번호가 붙은 위치에 n개의 서로 다른 물건이 놓여 있다. 물건은 순열에 따라 옮길 수 있다. 순열 q 를 적용하면, 위치 j 에 있던 물건이 모든 j = 1, ..., n 에 대해 위치 qj 로 이동한다.
m개의 정수 쌍 ai, bi 가 주어진다. 각 i 에 대해, 위치 ai 에 있던 물건을 순열 p 와 에프순열 z 만 사용해 위치 bi 로 옮길 수 있는지 판별해야 한다. p 와 z 는 순서에 상관없이 원하는 만큼 적용할 수 있다.
예를 들어 n = 4이고 p = [1, 4, 3, 2]라면, 위치 4의 원소를 위치 1로 옮길 수 있다. 예를 들어 p 를 적용하면 위치 4의 물건이 위치 2로 가고, 그다음 z 를 적용하면 된다. 반면 위치 3의 원소는 위치 4로 옮길 수 없는데, p 와 z 모두 이 원소를 제자리에 남겨 두기 때문이다.
입력
첫째 줄에 순열의 길이 n과 질의의 수 m이 주어진다 (2 ≤ n ≤ 105, 1 ≤ m ≤ 105). 다음 줄에 n개의 정수 pi 가 주어지며, 이는 순열 p 이다. 그다음 m개의 줄에 걸쳐 두 정수 ai, bi 가 주어진다 (ai, bi 는 1부터 n까지의 범위에 있다).
출력
각 질의마다 위치 ai 의 물건을 위치 bi 로 옮길 수 있으면 한 줄에 Yes, 아니면 No를 출력한다.