import java.util.Scanner;
import java.util.*;


// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        List<String> res = new ArrayList<String>();
        int group = in.nextInt();
        for(int i = 0; i < group; i++){//读取第一组数据

            int beinum = in.nextInt();//读取元素个数
            int[] arr = new int[beinum];
            for(int j = 0; j < beinum; j++){

                arr[j] = in.nextInt();  

            }
			//开始计算
            for(int k = 1; k < arr.length-1; k++){//第1个到倒数第2个(包含)
				//如果左大于右,即使两者相等也不影响。
                if(arr[k-1] >= arr[k+1]){
                    if((arr[k+1] + arr[k-1]) % 2 == 0){//如果可以平分
                        int n = (arr[k+1] + arr[k-1])/2;
                        int tmp = arr[k-1] - n;
                        arr[k-1] = arr[k-1] - tmp;
                        arr[k+1] = arr[k+1] + tmp;//就直接两边平分
                    }else{//如果不能平分,由于左大于右所以左一定要多分1个给右边;由于是从左边遍历过去,所以左边这一个就永远不能被后面使用了,所以要多分一个给右边。
                        int n = (arr[k+1] + arr[k-1])/2;
                        int tmp = arr[k-1] - n;
                        arr[k-1] = arr[k-1] - tmp;
                        arr[k+1] = arr[k+1] + tmp;
                    }

                }else{
                    if((arr[k+1] + arr[k-1]) % 2 == 0){//如果右大左的情况
                        int n = (arr[k+1] + arr[k-1])/2;
                        int tmp = arr[k+1] - n;
                        arr[k+1] = arr[k+1] - tmp;
                        arr[k-1] = arr[k-1] + tmp;//能平分就平分
                    }else{
                        int n = (arr[k+1] + arr[k-1])/2;
                        int tmp = arr[k+1] - n;
                        arr[k+1] = arr[k+1] - tmp + 1;
                        arr[k-1] = arr[k-1] + tmp - 1;//不能平分,由于右大于左,右边始终要比左边多一个,这样多出来的这一个就可以在后面灵活分配,所以还是右边要比左边多一个
                    }

                }

                if(arr[k] == arr[k+1] && arr[k] == arr[k-1] && arr.length >= 5){//情况3,当三个都相同时,我们不能动他所以直接加2,由于后面i++一次所以时+3,但是长度一定大于等于5,否者越界。
                    k+=2;
                }
			 

            }
				//判断是否右不同的,
            int last = arr[0];
            boolean flage = true;
            for(int n = 1 ; n < arr.length; n++){
                if(arr[n] != last){
                    flage = false;
                    break;
                }

            }
		//如果有不同结果为no,反之为yes
            if(flage == false){
                res.add("NO");
            }else{
                res.add("YES");
            }
        
        }

//输出结果
        for(String s : res){
            System.out.println(s);

        }
    }
}