CF1821B.Sort the Subarray
普及-
通过率:0%
时间限制:2.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Monocarp had an array a consisting of n integers. He has decided to choose two integers l and r such that 1≤l≤r≤n, and then sort the subarray a[l..r] (the subarray a[l..r] is the part of the array a containing the elements al,al+1,al+2,…,ar−1,ar) in non-descending order. After sorting the subarray, Monocarp has obtained a new array, which we denote as a′.
For example, if a=[6,7,3,4,4,6,5], and Monocarp has chosen l=2,r=5, then a′=[6,3,4,4,7,6,5].
You are given the arrays a and a′. Find the integers l and r that Monocarp could have chosen. If there are multiple pairs of values (l,r), find the one which corresponds to the longest subarray.
Monocarp 原本有一个由 n 个整数组成的数组 a。他决定选择两个整数 l 和 r,满足 1≤l≤r≤n,然后将子数组 a[l..r](即数组 a 中包含元素 al,al+1,al+2,…,ar−1,ar 的部分)按非降序排序。对该子数组排序后,Monocarp 得到了一个新数组,记作 a′。
例如,若 a=[6,7,3,4,4,6,5],且 Monocarp 选择了 l=2,r=5,则 a′=[6,3,4,4,7,6,5]。
现给出数组 a 和 a′。请找出 Monocarp 可能选择的整数 l 和 r。若存在多组 (l,r) 满足条件,请找出对应最长子数组的一组(即使 r−l+1 最大的那组)。
输入格式
The first line contains one integer t (1≤t≤104) — the number of test cases.
Each test case consists of three lines:
- the first line contains one integer n (2≤n≤2⋅105);
- the second line contains n integers a1,a2,…,an (1≤ai≤n);
- the third line contains n integers a1′,a2′,…,an′ (1≤ai′≤n).
Additional constraints on the input:
- the sum of n over all test cases does not exceed 2⋅105;
- it is possible to obtain the array a′ by sorting one subarray of a;
- a′=a (there exists at least one position in which these two arrays are different).
第一行包含一个整数 t(1≤t≤104)—— 表示测试用例的数量。
每个测试用例由三行组成:
- 第一行包含一个整数 n(2≤n≤2⋅105);
- 第二行包含 n 个整数 a1,a2,…,an(1≤ai≤n);
- 第三行包含 n 个整数 a1′,a2′,…,an′(1≤ai′≤n)。
输入的额外约束条件:
- 所有测试用例的 n 值之和不超过 2⋅105;
- 数组 a′ 可通过将数组 a 的某一个子数组排序后得到;
- a′=a(即这两个数组至少在一个位置上的元素不同)。
输出格式
For each test case, print two integers — the values of l and r (1≤l≤r≤n). If there are multiple answers, print the values that correspond to the longest subarray. If there are still multiple answers, print any of them.
对于每个测试用例,输出两个整数——l 和 r 的值(满足 1≤l≤r≤n)。如果存在多个答案,输出对应最长子数组的 l 和 r。如果仍存在多个答案,输出其中任意一组即可。
输入输出样例
输入#1
3 7 6 7 3 4 4 6 5 6 3 4 4 7 6 5 3 1 2 1 1 1 2 3 2 2 1 2 1 2
输出#1
2 5 1 3 2 3
输入解题思路,AI测评打分。不知道怎么写?