一道有意思的线段树题目,维护一个pair值(下一个元素的位置,权值)对其维护最大值(就是影响越持久)
把问题离线处理,按照问题的右端点排序,这样就能满足单调性
输出的时候一定要判断一下first的值是否符合要求
注意:
- 这棵线段树维护的是最大值,不管是修改还是查询都需要取max
- 如果没有nxt,数组的值要赋值为n+1
F. One Occurrence
You are given an array $$$a$$$ consisting of $$$n$$$ integers, and $$$q$$$ queries to it. $$$i$$$-th query is denoted by two integers $$$l_i$$$ and $$$r_i$$$. For each query, you have to find any integer that occurs exactly once in the subarray of $$$a$$$ from index $$$l_i$$$ to index $$$r_i$$$ (a subarray is a contiguous subsegment of an array). For example, if $$$a = [1, 1, 2, 3, 2, 4]$$$, then for query $$$(l_i = 2, r_i = 6)$$$ the subarray we are interested in is $$$[1, 2, 3, 2, 4]$$$, and possible answers are $$$1$$$, $$$3$$$ and $$$4$$$; for query $$$(l_i = 1, r_i = 2)$$$ the subarray we are interested in is $$$[1, 1]$$$, and there is no such element that occurs exactly once.
Can you answer all of the queries?
Input
The first line contains one integer $$$n$$$ ($$$1 \le n \le 5 \cdot 10^5$$$).
The second line contains $$$n$$$ integers $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 5 \cdot 10^5$$$).
The third line contains one integer $$$q$$$ ($$$1 \le q \le 5 \cdot 10^5$$$).
Then $$$q$$$ lines follow, $$$i$$$-th line containing two integers $$$l_i$$$ and $$$r_i$$$ representing $$$i$$$-th query ($$$1 \le l_i \le r_i \le n$$$).
Output
Answer the queries as follows:
If there is no integer such that it occurs in the subarray from index $$$l_i$$$ to index $$$r_i$$$ exactly once, print $$$0$$$. Otherwise print any such integer.
Example
input
1 | 6 |
output
1 | 4 |
1 |
|