50分
查看原帖
50分
868193
ht__QAQ__楼主2023/7/1 10:52
#include<bits/stdc++.h>
using namespace std;
inline int R(){
    int x=0,f=1;char ch=getchar();
    while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
    while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
    return x*f;
}
#define R R()
void slove(){
	int n=R,a[50001],maxx=-1,minn=10086,z,y,d,q,h;bool pd1,pd2;
	z=y=d=0;
	for(int i=0;i<n;i++){
		a[i]=R;
		maxx=max(maxx,a[i]);
		minn=min(minn,a[i]);
	}
	pd1=pd2=false;
	for(int i=0;i<n;i++){
		if(pd1&&pd2) break;
		if(a[i]==maxx) pd1=true;
		if(a[i]==minn) pd2=true;
		z++;
	}
	pd1=pd2=false;
	for(int i=n-1;i>=0;i--){
		if(pd1&&pd2) break;
		if(a[i]==maxx) pd1=true;
		if(a[i]==minn) pd2=true;
		y++;
	}
	pd1=pd2=false;
	for(int q=0;q<n;q++){
		h=n-q-1;
		if(pd1&&pd2) break;
		if(a[q]==maxx) pd1=true;
		if(a[q]==minn) pd2=true;
		if(a[h]==maxx) pd1=true;
		if(a[h]==minn) pd2=true;
		d+=2;
	}
	cout<<min(min(z,y),d)<<"\n";
	return;
}
int main(){
	int T=R;
	while(T--){
		slove();
	}
	return 0;
}
2023/7/1 10:52
加载中...