求助,每个子任务第一个点wa
查看原帖
求助,每个子任务第一个点wa
1100612
Gaoxing233楼主2024/8/17 20:04

rt

#include <bits/stdc++.h>
using namespace std;
using llt=long long;
const int maxn=2e6+10;
int t,n,ans=0;
llt tmp=0,maxx=0,minn=0,si=0,a[maxn];
bool x[maxn],y[maxn];
int main()
{
	//freopen("take_part.out","r",stdin);
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
		x[1]=y[n]=true;
		maxx=minn=a[1];
		tmp=a[1];
		si=1;
		for(int i=2;i<=n-1;i++)
		{
			tmp=(tmp+a[i]);
			maxx=max(maxx,a[i]);
			minn=min(minn,a[i]);
			si++;
			if(((minn+maxx)*si/2)==tmp&&(maxx-minn)/(si-1)*(si-1)+minn==maxx)
			{
				x[i]=true;
			}
		}
		tmp=a[n];
		maxx=minn=a[n];
		si=1;
		for(int i=n-1;i>=2;i--)
		{
			tmp=(tmp+a[i]);
			maxx=max(maxx,a[i]);
			minn=min(minn,a[i]);
			si++;
			if(((minn+maxx)*si/2)==tmp&&(maxx-minn)/(si-1)*(si-1)+minn==maxx)
			{
				y[i]=true;
			}
		}
		for(int i=1;i<=n;i++)
		{
			///cout<<x[i]<<" "<<y[i+1]<<endl;
			if(x[i]&&y[i+1])
			{
				//cout<<i<<" ";
				ans++;
			}
		}
		printf("%d \n",ans);
		for(int i=1;i<=n;i++) x[i]=y[i]=false;
		ans=0;
		tmp=0;
		si=0;
	}
	return 0;
}

2024/8/17 20:04
加载中...