| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2 초 (추가 시간 없음) | 1024 MB (추가 메모리 없음) | 91 | 36 | 20 | 35.088% |
수열 $a_l,a_{l+1},\cdots,a_r$의 가치는 다음과 같이 정의된다.
$\And$연산자는 bitwise and 연산자이고, $|$연산자는 bitwise or 연산자이다.
정수로 이루어진 수열 $a_1,a_2,\cdots,a_N$이 주어진다.
다음과 같은 쿼리를 $Q$번 수행하는 프로그램을 작성해보자.
첫째 줄에 정수 $N$이 주어진다. $(1\leq N \leq 1\,000\,000)$
둘째 줄에 정수로 이루어진 수열 $a_1,a_2,\cdots,a_N$이 공백으로 구분되어 주어진다. $(0\leq a_i \leq 10^{18})$
셋째 줄에 쿼리의 개수를 나타내는 정수 $Q$가 주어진다. $(1\leq Q \leq 1\,000\,000)$
넷째 줄부터 $Q$개의 줄에 걸쳐 쿼리를 나타내는 두 정수 $i,j$가 공백으로 구분되어 주어진다. $(1\leq i \leq j \leq N)$
매 쿼리마다 정답을 한 줄에 하나씩 출력한다.
단, 정답이 너무 커질 수 있으므로 $10^9+7$로 나눈 나머지를 출력한다.
4 11 2 8 15 3 1 3 1 2 1 4
6 0 7