样例都过不去?
查看原帖
样例都过不去?
773747
yutong_Seafloor楼主2023/7/6 18:47

思路:
查看有几次落差值 (就是不合要求的值)正常的都是1次,如果不正常就是NO

#include<bits/stdc++.h>
using namespace std;
int q,n,a[201],i,j;
bool ssz(int n1)//顺时针:1 2 3
{
	int dc1=0,l;
	for(l=1;l<n1;l++)
	{	
//		cout<<a[l]<<" "<<a[l+1]<<endl;
		if(a[l]!=a[l+1]-1 && a[l+1]!=0)
		{
			dc1+=1;
		}
	}
//	cout<<dc1<<endl;
	if(dc1<=1)
	return true;
	else
	return false;
}
bool nsz(int n2)//逆时针:3 2 1//1 3 2
{
	int dc2=0,k;
	for(k=1;k<n2;k++)
	{	
//		cout<<a[k]<<" "<<a[k+1]<<endl;
		if(a[k]!=a[k+1]-1)
		{
			dc2+=1;
		}
	}
//	cout<<dc2<<endl;
	if(dc2<=1)
	return true;
	else
	return false;
}
int main()
{
	cin>>q;
	for(i=1;i<=q;i++)
	{
		cin>>n;
		for(j=1;j<=n;j++)
		cin>>a[j];
		if(ssz(n)||nsz(n))
		cout<<"YES\n";
		else
		cout<<"NO\n";
		for(j=1;j<=n;j++)
		a[j]=0;
	}
}
2023/7/6 18:47
加载中...