#1367
Diamond IV
수열과 쿼리 16
시간 제한
5s
메모리 제한
1536MB
제출
2
정답
1
맞힌 사람
1
정답 비율
50.0%

문제

길이가 NN인 수열 A1,A2,,ANA_1, A_2, \cdots, A_N이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성해 보자.

  • l r: Al,Al+1,,ArA_l, A_{l+1}, \cdots, A_r에서 서로 다른 수의 개수를 세고 출력한다.

입력

첫째 줄에 수열의 크기 NN과 쿼리의 개수 QQ가 공백으로 구분되어 주어진다. (1N,Q10000001 \le N, Q \le 1\,000\,000)

둘째 줄에 A1,A2,,ANA_1, A_2, \dots, A_N이 공백으로 구분되어 주어진다. (109Ai109-10^9 \le A_i \le 10^9)

셋째 줄부터 QQ개의 줄에 걸쳐 각 줄에 쿼리를 복원하는데 필요한 두 정수 aa, bb가 공백으로 구분되어 주어진다. (0a,b23110\le a, b\le 2^{31}-1) 쿼리는 다음과 같이 복원한다.

  • l=(a+last)modN+1l = (a + \text{last}) \mod N + 1
  • r=(b+last)modN+1r = (b + \text{last}) \mod N + 1
  • last\text{last}는 직전 쿼리에서의 정답이고 최초에는 last=0\text{last} = 0이다.

출력

2번 쿼리의 답을 한 줄에 하나씩 출력한다.

예제 입력 1

5 5
1 1 3 2 2
0 1
4 1
4 1
4 1
1 1

예제 출력

1
2
3
2
1

각 쿼리를 복원하면 다음과 같다.

입력 (aa bb)last\text{last}복원된 쿼리 (ll rr)정답
0 101 21
4 111 32
4 122 43
4 133 52
1 124 41
문제를 만든 사람
조서현
알고리즘 분류
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
#순위사용자언어시간메모리코드 길이
8672🥇
조서현
C++1799ms508052KB2642B
난이도 투표
Diamond IV1명 투표· 5일 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
#사용자문제결과언어시간메모리코드 길이제출 시간
8672
맞았습니다
C++1799ms508052KB2642B2026. 06. 01. 06:09
8668
틀렸습니다
C++--2612B2026. 06. 01. 06:00