CF-1343B Balanced Array题解

一道数学题,只要a/2%2判断是是否等于0,如果等于0则yes,否则就是no,然后输出数组,n/2左边是偶数,就2 4 6 8 10 这样输出就行。右边是1 3 5 7 ,但是最后一位是偶数(n/2项)减奇数(n/2-1项)的差。

#include
#include
using namespace std;
int main(){
	int count,a;
	cin>>count;
	for(int i=1;i<=count;i++){
		cin>>a;
		if(a%2){
			cout<<"NO"<<endl;
		}else{
			int n;
			n=a/2;
			if(n%2){
				cout<<"NO"<<endl;
			}else{
				cout<<"YES"<<endl;
				for(int j=2;j<=a;j=j+2)
					cout<<j<<" ";
				for(int j=1;j<a-2;j=j+2)
					cout<<j<<" ";
				cout<<(2+2*n)*n/2-(1+(2*(n-1)-1))*(n-1)/2<<endl;
			}
		}
	}
	return 0;
} 

你可能感兴趣的:(CF-1343B Balanced Array题解)