在一个神奇的森林里,有N种竹子。一开始,竹的高度等于H[i]。你可以花一分钟把第i个竹子的高度砍掉一厘米,但是同时其他竹子长高了一厘米。你一直砍一直砍。有可能使所有的竹子都同样的高度吗?可以的话输出YES,不可以的话输出NO。
只要出现两个竹子的差值为奇数,就不可能一样高了。
所以判断第一个输入的数字是奇数还是偶数,之后只能输入相同奇偶性质的数,否则不可满足题意
代码如下:
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int T;
int n;
int temp;
int jiou;
scanf("%d",&T);
int flag;
for(int i=0;i<T;i++){
scanf("%d",&n);
scanf("%d",&temp);
flag = 1;
jiou = temp % 2;
for(int j=0;j<n-1;j++){
scanf("%d",&temp);
if(temp % 2 == jiou){
continue;
}else{
flag = 0;
}
}
if(flag){
printf("YES\n");
}else{
printf("NO\n");
}
}
return 0;
}