Splitting Haybales
Farmer John wants to fairly split haybales between his two favorite cows Bessie and Elsie. He has N ( 1≤N≤2⋅105) haybales sorted in non-increasing order, where the i-th haybale has ai units of hay (2⋅105≥a1≥a2≥⋯≥aN≥1).
Farmer John is considering splitting a contiguous range of haybales al,…,ar between Bessie and Elsie. He has decided to process the haybales in order from l to r, and when processing the i-th haybale he will give it to the cow who currently has less hay (if it is a tie, he will give it to Bessie).
You are given Q (1≤Q≤2⋅105) queries, each with three integers l,r,x (1≤l≤r≤N, ∣x∣≤109). For each query, output how many more units of hay Bessie will have than Elsie after processing haybales l to r, if Bessie starts with x more units than Elsie. Note that this value is negative if Elsie ends up with more haybales than Bessie.
For the 1st query, Elsie starts with 2 more hay than Bessie. Then, after processing haybale 1, Bessie will receive 3 hay, and Bessie will have 1 more hay than Elsie.
For the 3rd query, Elsie and Bessie start with the same number of hay. After processing haybale 1, Bessie will receive 3 hay, and Bessie will have 3 more hay than Elsie.
For the 9th query, Bessie starts with 1 more hay than Elsie, then after processing the 1st haybale, has 2 less hay than Elsie, and after processing the 2nd haybale, has 1 less hay than Elsie.
In the 5th query, there are 5 haybales to process. Bessie receives 4 hay, then Elsie receives 4 hay, then Bessie receives 3 hay, then Elsie receives 1 hay, then Elsie receives 1 hay.
SCORING:
- Input 3: Q≤100
- Inputs 4-6: At most 100 distinct ai
- Inputs 7-22: No additional constraints.
Problem credits: Benjamin Qi
Source: USA Computing Olympiad.
Input Format
First line contains N.
Second line contains a1…aN.
Third line contains Q.
Next Q lines contain l,r,x.
Output Format
Output Q lines, containing the answer for each query.