C. Dora and Search

time limit per test

1 second

memory limit per test

256 megabytes

As you know, the girl Dora is always looking for something. This time she was given a permutation, and she wants to find such a subsegment of it that none of the elements at its ends is either the minimum or the maximum of the entire subsegment. More formally, you are asked to find the numbers l and r (1≤l≤r≤n) such that al≠min(al,al+1,...,ar), al≠max(al,al+1,...,ar) and ar≠min(al,al+1,...,ar), ar≠max(al,al+1,...,ar).

A permutation of length n is an array consisting of n distinct integers from 1 to n in any order. For example, 2,3,1,5,4 is a permutation, but 1,2,2 is not a permutation (2 occurs twice in the array) and 1,3,4 is also not a permutation (n=3, but 4 is present in the array).

Help Dora find such a subsegment, or tell her that such a subsegment does not exist.

Input

Each test consists of multiple test cases. The first line contains a single integer t (1≤t≤104) --- the number of test cases. Description of the test cases follows.

For each test case, the first line contains one integer n (1≤n≤2⋅105) --- the length of permutation.

The second line contains n distinct integers a1,a2,...,an (1≤ai≤n) --- the elements of permutation.

It is guarented that the sum of n over all test cases doesn't exceed 2⋅105.

Output

For each test case, output −1 if the desired subsegment does not exist.

Otherwise, output two indexes l,r such that al,al+1,...,ar satisfies all conditions.

If there are several solutions, then output any of them.

Example

Input

Copy

复制代码

4

3

1 2 3

4

2 1 4 3

7

1 3 2 4 6 5 7

6

2 3 6 5 4 1

Output

Copy

复制代码
-1
1 4
2 6
-1

Note

In the first and fourth test cases, it can be shown that there are no desired subsegments.

In the second test case, the subsegment 1,4 satisfies all the conditions, because max(a1,a2,a3,a4)=4,min(a1,a2,a3,a4)=1, as we see, all the conditions are met.

In the third test case, the subsegment 2,6 also satisfies all the conditions described.

解题说明:此题是一道模拟题,找出一对下标,使得对应数字符合要求。可以采用遍历算法,先假设l和r分别为数列头和数列尾,然后逐一判断,确保al和ar都不属于数列最大值和最小值。

cpp 复制代码
#include <stdio.h>

int a[200006];

int main(void) 
{
    int t;
    scanf("%d", &t);

    while (t--) 
    {
        int n;
        scanf("%d", &n);
  
        for (int i = 0; i < n; i++)
        {
            scanf("%d", &a[i]);
        }
        int l = 1, r = n;
        int smallest = 1;
        int largest = n;

        while (l < r) 
        {
            int flag = 1;

            if (a[l - 1] <= smallest)
            {
                l++;
                smallest++;
                flag = 0;
            }
            if (a[r - 1] <= smallest) 
            {
                r--;
                smallest++;
                flag = 0;
            }
            if (a[l - 1] >= largest)
            {
                l++;
                largest--;
                flag = 0;
            }
            if (a[r - 1] >= largest) 
            {
                r--;
                largest--;
                flag = 0;
            }
            if (flag)
            {
                break;
            }
        }

        if (r - l <= 1)
        {
            printf("-1\n");
        }
        else
        {
            printf("%d %d\n", l, r);
        }
    }

    return 0;
}
相关推荐
CodeGL2 分钟前
9、Python基础之IO编程
开发语言·数据库·python
曹牧25 分钟前
SVN:失联项目
开发语言
传奇开心果编程1 小时前
【Rust入门练中学】第9课:集合类型
开发语言·rust·编程语言理论·集合类型·通用编程语言
龙孚信息1 小时前
跨境电商独立站的安全盲区:一次 PHP 核心漏洞的影响评估
开发语言·安全·php
牛牛牌蜡笔小新1 小时前
Java-常用类库
java·开发语言
sunsijia219831 小时前
2026年10月22日 PHP漏洞临时处理
开发语言·php
Aurorar0rua1 小时前
CS50 x 2024 Notes Python - 02
开发语言·python·学习方法
zyseo82 小时前
谷歌SEO 网站迁移 301 映射脚本:旧站 URL 自动匹配新站结构
开发语言·python
清水白石0082 小时前
React Native与Flutter长期维护成本对比
开发语言·数据库
麦序子2 小时前
用 Python + python-docx 批量生成带表格样式的装修报价单 Word 文档(含合计公式)
开发语言·python·自然语言处理·word·python3.11