For an array a of integers let’s denote its maximal element as max(a), and minimal as min(a). We will call an array a of k integers interesting if max(a)–min(a)≥k. For example, array [1,3,4,3] isn’t interesting as max(a)–min(a)=4–1=3<4 while array [7,3,0,4,3] is as max(a)–min(a)=7–0=7≥5.
You are given an array a of n integers. Find some interesting nonempty subarray of a, or tell that it doesn’t exist.
An array b is a subarray of an array a if b can be obtained from a by deletion of several (possibly, zero or all) elements from the beginning and several (possibly, zero or all) elements from the end. In particular, an array is a subarray of itself.Input
The first line contains integer number t (1≤t≤10000). Then t test cases follow.
The first line of each test case contains a single integer n (2≤n≤2⋅105) — the length of the array.
The second line of each test case contains n integers a1,a2,…,an (0≤ai≤109) — the elements of the array.
It is guaranteed that the sum of n over all test cases does not exceed 2⋅105.Output
For each test case, output “NO” in a separate line if there is no interesting nonempty subarray in a.
Otherwise, output “YES” in a separate line. In the next line, output two integers l and r (1≤l≤r≤n) — bounds of the chosen subarray. If there are multiple answers, print any.
You can print each letter in any case (upper or lower).Exampleinput
3 5 1 2 3 4 5 4 2 0 1 9 2 2019 2020
output
NO YES 1 4 NO
Note
In the second test case of the example, one of the interesting subarrays is a=[2,0,1,9]: max(a)–min(a)=9–0=9≥4.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio( false ); cin.tie(0); int tt; cin >> tt; while (tt--) { int n; cin >> n; vector< int > a(n); for ( int i = 0; i < n; i++) { cin >> a[i]; } bool found = false ; for ( int i = 0; i < n - 1; i++) { if ( abs (a[i] - a[i + 1]) > 1) { cout << "YES" << '\n' ; cout << i + 1 << " " << i + 2 << '\n' ; found = true ; break ; } } if (!found) { cout << "NO" << '\n' ; } } return 0; } |