오름차순
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
- (5점) $N \le 10\,000$, $Q \le 10\,000$
- (7점) $N \le 10\,000$
- (28점) 모든 쿼리에 대해 $r = N$
- (10점) $A_i \ge A_{i+1}$ ($1 \le i \le N - 1$)
- (5점) $A_i \le 2$ ($1 \le i \le N$)
- (10점) $A_i = 2^{k_i}$를 만족하는 0 이상의 정수 $k_i$가 존재 ($1 \le i \le N$)
- (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