순열의 주기
시간 제한5초메모리 제한512 MB
항등 순열에서 시작해 주어진 교환을 차례로 적용하면서, 각 교환 뒤 순열의 주기(모든 사이클 길이의 최소공배수)를 10^9+7로 나눈 나머지를 구한다.
문제
개의 정수로 이루어진 순열 가 있다. 처음에는 에 대해 이다. 각 에 대해 , 그리고 인 임의의 에 대해 로 정의하자. 의 주기는 모든 에 대해 를 만족하는 최소 양의 정수 이다.
개의 질의가 주어진다. 번째 질의는 서로 다른 두 인덱스 와 로 주어진다. 각 질의마다 와 를 교환한 뒤 갱신된 의 주기를 로 나눈 나머지를 순서대로 계산한다.
의 주기는 항상 존재함을 증명할 수 있다.
입력
입력은 다음과 같은 형식의 단일 테스트 케이스로 이루어진다.
$N \ Q$
$x_1 \ y_1$
$\vdots$
$x_Q \ y_Q$
첫째 줄에는 두 정수 과 가 주어진다 (). 번째 줄에는 두 정수 와 가 주어진다 ().
출력
각 질의마다 답을 한 줄에 하나씩 출력한다.