求助,玄关
查看原帖
求助,玄关
1148600
focus_costan1楼主2024/8/17 23:25
	#include<bits/stdc++.h>
	using namespace std;
	int a[1000005];
	int main(){
		int t;
		scanf("%d",&t);
		while(t--){
			int n;
			scanf("%d",&n);
			for(int i=1;i<=n;i++){
				scanf("%d",&a[i]);
			}
			if(n==1){
				printf("0\n");
				continue;
			}
			if(n==2){
				printf("1\n");
				continue;
			}
			int cntt=0;
			if(a[1]==1||a[1]==n){
	//			cout<<"()";
				cntt++;
			}
			int maxx=max(a[1],a[2]),minn=min(a[1],a[2]);
			if(a[1]==1&&a[2]==2||a[1]==n&&a[2]==n-1||a[1]==2&&a[2]==1||a[1]==n-1&&a[2]==n){
				cntt++;
			}
			if(a[1]==1&&a[2]==n||a[1]==n&&a[2]==1){
				cntt++;
			}
			for(int i=3;i<n;i++){
				maxx=max(maxx,a[i]);
				minn=min(minn,a[i]);
				if(maxx==i&&minn==1||maxx==n&&minn==n-i+1){
	//				cout<<i<<"&&";
					cntt++;
				}
			}
			int ff=0;
			if(n%2==1){
				n+=1;
				ff=1;
			}
			int flag=0;
			if(a[1]%2==1){
				flag=1;
			}
			for(int i=2;i<=n/2;i++){
				if(a[i]%2==0&&flag==1){
					break;
				}
				if(a[i]%2==1&&flag==0){
					break;
				}
				if(i==n/2){
	//				cout<<"*";
					if(a[1]==1&&a[2]==n&&n==4&&ff==0){
						continue;
					}
				 
					if(a[1]==1&&a[2]==n-1&&n==4&&ff==1){
						continue;
					}
					cntt++;
				}
			}
			printf("%d\n",cntt);
		}
		return 0;
	} 

样例过了,交了全WA。

2024/8/17 23:25
加载中...