CF1927D.Find the Different Ones!

普及-

通过率:0%

时间限制:5.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array aa of nn integers, and qq queries.

Each query is represented by two integers ll and rr (1≤l≤r≤n1 \le l \le r \le n). Your task is to find, for each query, two indices ii and jj (or determine that they do not exist) such that:

  • l≤i≤rl \le i \le r;
  • l≤j≤rl \le j \le r;
  • ai≠aja_i \ne a_j.

In other words, for each query, you need to find a pair of different elements among al,al+1,…,ara_l, a_{l+1}, \dots, a_r, or report that such a pair does not exist.

给你一个包含 nn 个整数的数组 aa,以及 qq 个查询。

每个查询由两个整数 ll 和 rr 表示(满足 1≤l≤r≤n1 \le l \le r \le n)。对于每个查询,你需要找出两个下标 ii 和 jj(或判定其不存在),使得:

  • l≤i≤rl \le i \le r;
  • l≤j≤rl \le j \le r;
  • ai≠aja_i \ne a_j。

换言之,对每个查询,你需要在子数组 al,al+1,…,ara_l, a_{l+1}, \dots, a_r 中找出一对值不相等的元素,或者报告这样的元素对不存在。

输入格式

The first line of the input contains a single integer tt (1≤t≤1041 \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 nn (2≤n≤2⋅1052 \le n \le 2 \cdot 10^5) — the length of the array aa.

The second line of each test case contains nn integers a1,a2,…,ana_1, a_2, \dots, a_n (1≤ai≤1061 \le a_i \le 10^6) — the elements of the array aa.

The third line of each test case contains a single integer qq (1≤q≤2⋅1051 \le q \le 2 \cdot 10^5) — the number of queries.

The next qq lines contain two integers each, ll and rr (1≤l<r≤n1 \le l \lt r \le n) — the boundaries of the query.

It is guaranteed that the sum of the values of nn across all test cases does not exceed 2⋅1052 \cdot 10^5. Similarly, it is guaranteed that the sum of the values of qq across all test cases does not exceed 2⋅1052 \cdot 10^5.

输入的第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4)—— 表示测试用例的数量。随后是各测试用例的描述。

每个测试用例的第一行包含一个整数 nn(2≤n≤2⋅1052 \le n \le 2 \cdot 10^5)—— 表示数组 aa 的长度。

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n(1≤ai≤1061 \le a_i \le 10^6)—— 表示数组 aa 的元素。

每个测试用例的第三行包含一个整数 qq(1≤q≤2⋅1051 \le q \le 2 \cdot 10^5)—— 表示查询的数量。

接下来的 qq 行每行包含两个整数 ll 和 rr(1≤l<r≤n1 \le l \lt r \le n)—— 表示查询的边界。

保证所有测试用例中 nn 的总和不超过 2⋅1052 \cdot 10^5;同样,保证所有测试用例中 qq 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

For each query, output two integers separated by space: ii and jj (l≤i,j≤rl \le i, j \le r), for which ai≠aja_i \ne a_j. If such a pair does not exist, output i=−1i=-1 and j=−1j=-1.

You may separate the outputs for the test cases with empty lines. This is not a mandatory requirement.

对于每个查询,输出两个由空格分隔的整数:ii 和 jj(满足 l≤i,j≤rl \le i, j \le r),使得 ai≠aja_i \ne a_j。若不存在这样的数对,则输出 i=−1i=-1 和 j=−1j=-1。

你可以用空行分隔不同测试用例的输出。这不是强制性要求。

输入输出样例

  • 输入#1

    5
    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 5

    输出#1

    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

输入解题思路,AI测评打分。不知道怎么写?

首页