如何优化?
查看原帖
如何优化?
975573
lyc1109楼主2024/9/22 15:49

#4 ~ #10,#12TLE了

#include<iostream>
#include<algorithm>
using namespace std;
int T,n;
int p[1000001],q[1000001],c,num=0;
void sort1(int *c,int a[],int l,int r){
	for(int i=1;i<=r-l+1;i++){
		c[i]=a[l+i-1];
	}
	sort(c+1,c+r-l+2);
}
bool isok(int i){
	sort1(q,p,1,i);
	for(int j=1;j<i;j++){
		if(j==1){
			c=q[2]-q[1];
			continue;
		}
		if(q[j+1]-q[j]!=c) return false;
	}
	sort1(q,p,i+1,n);
	for(int j=1;j<n-i;j++){
		if(j==1){
			c=q[2]-q[1];
			continue;
		}
		if(q[j+1]-q[j]!=c) return false;
	}
	return true;
}
int main(){
	scanf("%d",&T);
	while(T--){
		scanf("%d",&n);
		num=0;
		for(int i=1;i<=n;i++){
			scanf("%d",&p[i]);
		}
		for(int i=1;i<n;i++){
			if(isok(i)){num++;}
		}
		printf("%d\n",num);
	}
	return 0;
}
2024/9/22 15:49
加载中...