CF1000F One Occurrence
题目描述
给定一个包含 $n$ 个整数的数组 $a$,以及 $q$ 个查询。第 $i$ 个查询由两个整数 $l_i$ 和 $r_i$ 表示。对于每个查询,你需要在数组 $a$ 的第 $l_i$ 到第 $r_i$ 个位置(即子数组 $a[l_i], a[l_i+1], \dots, a[r_i]$)中,找出任意一个恰好出现一次的整数。如果不存在这样的整数,则输出 $0$。
例如,若 $a = [1, 1, 2, 3, 2, 4]$,对于查询 $(l_i = 2, r_i = 6)$,对应的子数组为 $[1, 2, 3, 2, 4]$,可能的答案有 $1$、$3$ 和 $4$;对于查询 $(l_i = 1, r_i = 2)$,对应的子数组为 $[1, 1]$,没有任何元素恰好出现一次。
你能回答所有的查询吗?
输入格式
第一行包含一个整数 $n$,表示数组的长度,$1 \le n \le 5 \times 10^5$。
第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$,$1 \le a_i \le 5 \times 10^5$。
第三行包含一个整数 $q$,表示查询的数量,$1 \le q \le 5 \times 10^5$。
接下来的 $q$ 行,每行包含两个整数 $l_i$ 和 $r_i$,表示第 $i$ 个查询,$1 \le l_i \le r_i \le n$。
输出格式
对于每个查询:
如果在区间 $[l_i, r_i]$ 的子数组中不存在恰好出现一次的整数,输出 $0$。否则,输出任意一个恰好出现一次的整数。
说明/提示
由 ChatGPT 4.1 翻译