Codeforces Round 272 (Div. 1) |
---|
Finished |
Dreamoon has just created a document of hard problems using notepad.exe. The document consists of n lines of text, ai denotes the length of the i-th line. He now wants to know what is the fastest way to move the cursor around because the document is really long.
Let (r, c) be a current cursor position, where r is row number and c is position of cursor in the row. We have 1 ≤ r ≤ n and 0 ≤ c ≤ ar.
We can use following six operations in notepad.exe to move our cursor assuming the current cursor position is at (r, c):
You're given the document description (n and sequence ai) and q queries from Dreamoon. Each query asks what minimal number of key presses is needed to move the cursor from (r1, c1) to (r2, c2).
The first line contains an integer n(1 ≤ n ≤ 400, 000) — the number of lines of text.
The second line contains n integers a1, a2, ..., an(1 ≤ ai ≤ 108).
The third line contains an integer q(1 ≤ q ≤ 400, 000).
Each of the next q lines contains four integers r1, c1, r2, c2 representing a query (1 ≤ r1, r2 ≤ n, 0 ≤ c1 ≤ ar1, 0 ≤ c2 ≤ ar2).
For each query print the result of the query.
9
1 3 5 3 1 3 5 3 1
4
3 5 3 1
3 3 7 3
1 0 3 3
6 0 7 3
2
5
3
2
2
10 5
1
1 0 1 5
3
In the first sample, the first query can be solved with keys: HOME, right.
The second query can be solved with keys: down, down, down, END, down.
The third query can be solved with keys: down, END, down.
The fourth query can be solved with keys: END, down.
Name |
---|