311053: CF1927D. Find the Different Ones!
Description
You are given an array $a$ of $n$ integers, and $q$ queries.
Each query is represented by two integers $l$ and $r$ ($1 \le l \le r \le n$). Your task is to find, for each query, two indices $i$ and $j$ (or determine that they do not exist) such that:
- $l \le i \le r$;
- $l \le j \le r$;
- $a_i \ne a_j$.
In other words, for each query, you need to find a pair of different elements among $a_l, a_{l+1}, \dots, a_r$, or report that such a pair does not exist.
InputThe first line of the input contains a single integer $t$ ($1 \le t \le 10^4$) — the number of test cases. The descriptions of the test cases follow.
The first line of each test case contains a single integer $n$ ($2 \le n \le 2 \cdot 10^5$) — the length of the array $a$.
The second line of each test case contains $n$ integers $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^6$) — the elements of the array $a$.
The third line of each test case contains a single integer $q$ ($1 \le q \le 2 \cdot 10^5$) — the number of queries.
The next $q$ lines contain two integers each, $l$ and $r$ ($1 \le l < r \le n$) — the boundaries of the query.
It is guaranteed that the sum of the values of $n$ across all test cases does not exceed $2 \cdot 10^5$. Similarly, it is guaranteed that the sum of the values of $q$ across all test cases does not exceed $2 \cdot 10^5$.
OutputFor each query, output two integers separated by space: $i$ and $j$ ($l \le i, j \le r$), for which $a_i \ne a_j$. If such a pair does not exist, output $i=-1$ and $j=-1$.
You may separate the outputs for the test cases with empty lines. This is not a mandatory requirement.
ExampleInput5 5 1 1 2 1 1 3 1 5 1 2 1 3 6 30 20 20 10 10 20 5 1 2 2 3 2 4 2 6 3 5 4 5 2 3 4 4 1 2 1 4 2 3 2 4 5 1 4 3 2 4 5 1 5 2 4 3 4 3 5 4 5 5 2 3 1 4 2 7 1 2 1 4 1 5 2 4 2 5 3 5 4 5Output
2 3 -1 -1 1 3 2 1 -1 -1 4 2 4 6 5 3 1 2 1 2 2 3 3 2 1 3 2 4 3 4 5 3 5 4 1 2 4 2 1 3 2 3 3 2 5 4 5 4
Output
给定一个包含n个整数的数组a和q个查询。每个查询由两个整数l和r(1≤l≤r≤n)表示。你的任务是对于每个查询,找到两个索引i和j(或者确定它们不存在),使得:
- l≤i≤r;
- l≤j≤r;
- a_i ≠ a_j。
换句话说,对于每个查询,你需要找到a_l, a_{l+1}, …, a_r中的一对不同的元素,或者报告这样的元素对不存在。
输入数据格式:
第一行输入包含一个整数t(1≤t≤10^4)——测试用例的数量。接下来是t个测试用例的描述。
每个测试用例的第一行包含一个整数n(2≤n≤2×10^5)——数组a的长度。
每个测试用例的第二行包含n个整数a_1, a_2, …, a_n(1≤a_i≤10^6)——数组a的元素。
每个测试用例的第三行包含一个整数q(1≤q≤2×10^5)——查询的数量。
接下来的q行每行包含两个整数l和r(1≤l
保证所有测试用例中n的值的总和不超过2×10^5。同样,保证所有测试用例中q的值的总和不超过2×10^5。
输出数据格式:
对于每个查询,输出两个整数,由空格分隔:i和j(l≤i, j≤r),使得a_i ≠ a_j。如果这样的对不存在,则输出i=-1和j=-1。
测试用例之间的输出可以用空行分隔,这不是强制要求。题目大意: 给定一个包含n个整数的数组a和q个查询。每个查询由两个整数l和r(1≤l≤r≤n)表示。你的任务是对于每个查询,找到两个索引i和j(或者确定它们不存在),使得: - l≤i≤r; - l≤j≤r; - a_i ≠ a_j。 换句话说,对于每个查询,你需要找到a_l, a_{l+1}, …, a_r中的一对不同的元素,或者报告这样的元素对不存在。 输入数据格式: 第一行输入包含一个整数t(1≤t≤10^4)——测试用例的数量。接下来是t个测试用例的描述。 每个测试用例的第一行包含一个整数n(2≤n≤2×10^5)——数组a的长度。 每个测试用例的第二行包含n个整数a_1, a_2, …, a_n(1≤a_i≤10^6)——数组a的元素。 每个测试用例的第三行包含一个整数q(1≤q≤2×10^5)——查询的数量。 接下来的q行每行包含两个整数l和r(1≤l