서로 다른 수와 쿼리 2
시간 제한5초메모리 제한1024 MB
각 질의의 왼쪽 끝이 직전 답에 따라 정해지는 상황에서, 구간 [l, r]에 나타나는 서로 다른 값의 개수를 최대 10^6개의 질의에 대해 센다.
문제
정수 개로 이루어진 배열 가 주어진다. 배열의 첫 번째 원소가 1번이다.
다음 쿼리를 번 처리하는 프로그램을 작성하시오.
l r: 의 번째 수부터 번째 수까지에서 서로 다른 수가 몇 개인지 세어 출력한다.
각 쿼리의 은 직전 쿼리의 정답으로 정해지므로, 쿼리를 주어진 순서대로 하나씩 처리해야 한다.
입력
첫째 줄에 배열의 크기 ()이 주어진다.
둘째 줄에 이 공백으로 구분되어 주어진다. 각 수는 이하의 자연수이다.
셋째 줄에 쿼리의 개수 ()가 주어진다.
넷째 줄부터 개의 줄에 번 쿼리를 나타내는 두 정수 와 가 주어진다. 쿼리 번호는 1번부터 시작하고, 번 쿼리의 왼쪽 끝은 이다. 여기서 은 번 쿼리의 정답이고 이다.
모든 에 대해 이고 이다.
출력
개의 줄에 각 쿼리의 정답을 입력에 주어진 순서대로 한 줄에 하나씩 출력한다.