순열 P와 여러 질의 K가 주어질 때, P^1부터 P^(M-1)까지 사전순으로 정렬했을 때 K번째인 순열 P^T의 지수 T를 구한다.
어려움8수학조합론정렬구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB크기가 N인 순열 P는 P=[P1,P2,…,PN]인 배열로, 1≤Pi≤N을 만족하고 i=j이면 Pi=Pj이다.
두 순열 A,B에 대해 사전식 순서를 정의한다. A가 B보다 작다는 것은 Ai<Bi이고 모든 1≤j<i에 대해 Aj=Bj인 인덱스 i (1≤i≤N)가 존재한다는 뜻이다.
두 순열의 곱도 정의한다. A,B가 크기가 N인 순열이면 A×B는 크기가 N인 순열이며, i번째 원소는 (A×B)i=ABi이다.
순열과 양의 정수의 거듭제곱을 정의한다. P가 순열이고 z가 양의 정수이면 Pz는 P1=P이고 z>1일 때 Pz=Pz−1×P로 정의된다.
크기가 N인 순열 P가 주어진다. PM=P를 만족하는 1보다 큰 가장 작은 정수 M을 생각하자. A1,A2,…,AM−1을 P1,P2,…,PM−1을 사전식 순서로 오름차순 정렬한 결과라 하자. 즉 A1<A2<⋯<AM−1이다.
예를 들어 P=[2,3,1,5,4]이면 P1=[2,3,1,5,4], P2=[3,1,2,4,5], P3=[1,2,3,5,4], P4=[2,3,1,4,5], P5=[3,1,2,5,4], P6=[1,2,3,4,5], P7=[2,3,1,5,4]이다. 따라서 M=7이고 정렬된 배열은 A=[P6,P3,P4,P1,P2,P5]이다.
Q개의 질의가 주어진다. i번째 질의는 정수 Ki를 포함한다. i번째 질의의 답은 PTi=AKi를 만족하는 정수 Ti (1≤Ti<M)이다. 모든 질의에 답하라.
첫째 줄에 순열의 크기와 질의의 개수를 나타내는 두 정수 N,Q (1≤N≤100, 1≤Q≤300000)가 주어진다. 둘째 줄에 순열을 나타내는 N개의 정수 P1,P2,…,PN (1≤Pi≤N)이 주어진다. 입력된 수는 순열임이 보장된다. 다음 Q개의 줄에는 각 질의를 나타내는 정수 Ki (1≤Ki<M)가 한 줄에 하나씩 주어진다. 여기서 M은 위에서 설명한 PM=P인 가장 작은 1보다 큰 정수이며, 입력에 직접 주어지지 않는다.
Q개의 줄에 각 질의의 답 Ti를 한 줄에 하나씩 출력한다.
공개된 입력에 사용된 순열은 문제 본문에서 설명한 순열과 같다.