#P14630. [2018 KAIST RUN Fall] Histogram Sequence

[2018 KAIST RUN Fall] Histogram Sequence

题目描述

A histogram is a polygon made by aligning NN adjacent rectangles that share a common base line. Each rectangle is called a bar\textit{bar}. The ii-th bar from the left has width 1 and height HiH_i.

:::align{center}

Figure: This picture depicts a case when N=9N = 9 and H=[7,4,3,5,4,2,5,1,2]H = [7,4,3,5,4,2,5,1,2]. :::

One day, you wanted to find the area of the largest rectangle contained in the given histogram. What you did was to make a list of integers AA by the following procedure:

  • For each 1ijN1 \le i \le j \le N, calculate the largest area of the rectangle contained in the histogram, where the rectangle's base line coincides with the base line of the i,i+1,,j1,ji, i+1, \cdots, j-1, j-th bar. Add the area to the list AA.

:::align{center}

Figure: This picture depicts a case when i=3i = 3 and j=5j = 5. The area is 9. :::

The length of the list AA is exactly N(N+1)2\frac{N(N+1)}{2} since you chose each pair (i,j)(i, j) exactly once. To make your life easier, you sorted the list AA in non-decreasing order. Now, to find the largest area of the rectangle contained in the histogram, you just need to read the last element of AA, AN(N+1)/2A_{N(N+1)/2}.

However, you are not satisfied with this at all, so I decided to let you compute some part of the list AA. You have to write a program that, given two indices LL and RR (LRL \le R), calculate the values AL..RA_{L..R}, i.e. AL,AL+1,,AR1,ARA_{L}, A_{L+1}, \cdots, A_{R-1}, A_{R}.

输入格式

The first line of the input contains an integer NN (1N3000001 \le N \le 300\,000) which is the number of bars in the histogram.

The next line contains NN space-separated positive integers H1,H2,,HNH_1, H_2, \cdots, H_N (1Hi1091 \le H_i \le 10^9), where HiH_i is the height of the ii-th bar.

The last line contains two integers LL and RR (1LRN(N+1)21 \le L \le R \le \frac{N(N+1)}{2}, RL+1300000R - L + 1 \le 300\,000).

输出格式

Print RL+1R - L + 1 integers. The jj-th (1jRL+11 \le j \le R-L+1) of them should be the (L+j1)(L+j-1)-th element of the list AA, i.e. AL+j1A_{L+j-1}.

9
7 4 3 5 4 2 5 1 2
42 45
12 12 14 15