分析:
可以发现排列表示任何数字都不能缺少,那么可以将n始终放在1和2之间就可以满足排列最少。
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N=2e5+10;
int a[N];
void solve()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int cnt1,cnt2,cntn;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(a[i]==1) cnt1=i;
else if(a[i]==2) cnt2=i;
else if(a[i]==n) cntn=i;
}
if(min(cnt1,cnt2)<cntn&&cntn<max(cnt1,cnt2)) cout<<"1 1"<<'\n';
else
{
if(cntn>max(cnt1,cnt2)) cout<<cntn<<' '<<max(cnt1,cnt2)<<'\n';
else cout<<cntn<<' '<<min(cnt1,cnt2)<<'\n';
}
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
solve();
return 0;
}