题目链接:cf913F
#include <bits/stdc++.h>
using namespace std;
using LL = long long;
const int INF = 0x3f3f3f3f;
const LL mod = 1e9 + 7;
const int N = 400005;
int a[N];
int work(int n) {
int res = INF;
for (int i = 1; i <= n; i++) a[i + n] = a[i];
int cnt = 1;
for (int i = 2 * n - 1; i >= 1; i--) {
if (a[i] <= a[i + 1]) {
cnt++;
} else {
cnt = 1;
}
if (cnt == n) {
res = min(res, n + 1 - i);
break;
}
}
cnt = 1;
for (int i = 2 * n - 1; i >= 1; i--) {
if (a[i] >= a[i + 1]) {
cnt++;
} else {
cnt = 1;
}
if (cnt == n) {
res = min(res, n + 1 - i + 1);
break;
}
}
return res;
}
int main() {
int _;
scanf("%d", &_);
while (_--) {
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
if (n == 1) {
puts("0");
continue;
}
int ans = work(n);
reverse(a + 1, a + 1 + n);
ans = min(ans, work(n) + 1);
if (ans == INF)
puts("-1");
else
printf("%d\n", ans);
}
return 0;
}