수열 a_l,a_l+1,⋯,a_r의 가치는 다음과 같이 정의된다.
&연산자는 bitwise and 연산자이고, ∣연산자는 bitwise or 연산자이다.
정수로 이루어진 수열 a_1,a_2,⋯,a_N이 주어진다.
다음과 같은 쿼리를 Q번 수행하는 프로그램을 작성해보자.
첫째 줄에 정수 N이 주어진다. (1≤N≤1,000,000)
둘째 줄에 정수로 이루어진 수열 a_1,a_2,⋯,a_N이 공백으로 구분되어 주어진다. (0≤a_i≤1018)
셋째 줄에 쿼리의 개수를 나타내는 정수 Q가 주어진다. (1≤Q≤1,000,000)
넷째 줄부터 Q개의 줄에 걸쳐 쿼리를 나타내는 두 정수 i,j가 공백으로 구분되어 주어진다. (1≤i≤j≤N)
매 쿼리마다 정답을 한 줄에 하나씩 출력한다.
단, 정답이 너무 커질 수 있으므로 109+7로 나눈 나머지를 출력한다.