Skip to content

오름차순

Unrated
한국어

Language

Contribute a translation
Time limit
4000 ms
Memory limit
1024 MB
Submissions
0
Correct
0
Solved by
0
AC rate

Statement

길이 $M$인 양의 정수열 $X_1, \dots, X_M$이 주어질 때, 이 수열을 오름차순으로 만드는 것을 생각해 보자. 수열 $X_1, \dots, X_M$이 오름차순이라는 것은, 각 $i$ ($1 \le i \le M-1$)에 대해 $X_i \le X_{i+1}$이라는 것이다.

수열 $X$를 오름차순으로 만들기 위해, 수열 $X$에 다음 연산을 몇 번이든 반복해서 적용할 수 있다.

  • 어떤 $i$ ($1 \le i \le M$)에 대해 $X_i$에 2를 곱한다.

연산을 최소 횟수로 적용해서 $X$를 오름차순으로 만들 때, 이 최소 횟수를 $f(X)$라고 하자.

길이 $N$의 양의 정수열 $A_1, \dots, A_N$과 쿼리 $Q$개가 주어진다. 각 쿼리에는 $1 \le l \le r \le N$을 만족하는 정수 $l$과 $r$이 주어진다. 해당 쿼리에 대한 답은 $f(A_l, \dots, A_r)$이다. $A_l, \dots, A_r$은 $A$의 $l$번째 원소부터 $r$번째 원소까지로 이루어진 부분 수열을 의미한다.

각 쿼리에 대한 답을 구하여라.

Constraints

  • 주어지는 모든 수는 정수이다.
  • $1 \le N \le 250\,000$
  • $1 \le Q \le 250\,000$
  • $1 \le A_i \le 10^9$ ($1 \le i \le N$)
  • 모든 쿼리에 대해 $1 \le l \le r \le N$

Subtasks

  1. (5점) $N \le 10\,000$, $Q \le 10\,000$
  2. (7점) $N \le 10\,000$
  3. (28점) 모든 쿼리에 대해 $r = N$
  4. (10점) $A_i \ge A_{i+1}$ ($1 \le i \le N - 1$)
  5. (5점) $A_i \le 2$ ($1 \le i \le N$)
  6. (10점) $A_i = 2^{k_i}$를 만족하는 0 이상의 정수 $k_i$가 존재 ($1 \le i \le N$)
  7. (35점) 추가 제약 조건 없음

Input

첫 번째 줄에 $N$과 $Q$가 공백으로 구분되어 주어진다.

두 번째 줄에 $A_1, \dots, A_N$이 공백으로 구분되어 주어진다.

이후 $Q$개의 줄에 걸쳐 쿼리들이 주어진다. 각 쿼리는 $l$과 $r$이 공백으로 구분되어 주어진다.

Output

$Q$개의 줄에 걸쳐 쿼리들의 답을 입력 순서대로 출력한다.

Examples

Sample input 1
10 5
5 2 7 3 2 9 6 3 3 5
3 9
1 10
1 8
2 4
8 9
Sample output 1
14
27
19
2
0
Sample input 2
10 5
2 8 4 9 10 8 5 3 7 7
2 8
1 10
3 3
1 3
8 10
Sample output 2
7
11
0
1
0

Tags

No tags yet

Source