您好,欢迎来到百家汽车网。
搜索
您的当前位置:首页Ian and Array Sorting

Ian and Array Sorting

来源:百家汽车网

D. Ian and Array Sorting

Problem

To thank Ian, Mary gifted an array a a a of length n n n to Ian. To make himself look smart, he wants to make the array in non-decreasing order by doing the following finitely many times: he chooses two adjacent elements a i a_i ai and a i + 1 a_{i+1} ai+1 ( 1 ≤ i ≤ n − 1 1\le i\le n-1 1in1), and increases both of them by 1 1 1 or decreases both of them by 1 1 1. Note that, the elements of the array can become negative.

As a smart person, you notice that, there are some arrays such that Ian cannot make it become non-decreasing order! Therefore, you decide to write a program to determine if it is possible to make the array in non-decreasing order.

Input

The first line contains a single integer t t t ( 1 ≤ t ≤ 1 0 4 1 \leq t \leq 10^4 1t104) — the number of test cases. The description of test cases follows.

The first line of each test case consists of a single integer n n n ( 2 ≤ n ≤ 3 ⋅ 1 0 5 2\le n\le 3\cdot10^5 2n3105) — the number of elements in the array.

The second line of each test case contains n n n integers a 1 , a 2 , … , a n a_1,a_2,\ldots,a_n a1,a2,,an ( 1 ≤ a i ≤ 1 0 9 1\le a_i\le 10^9 1ai109) — the elements of the array a a a.

It is guaranteed that the sum of n n n over all test cases does not exceed 3 ⋅ 1 0 5 3\cdot10^5 3105.

Output

For each test case, output “YES” if there exists a sequence of operations which make the array non-decreasing, else output “NO”.

You may print each letter in any case (for example, “YES”, “Yes”, “yes”, “yEs” will all be recognized as positive answer).

Example

Input
5
3
1 3 2
2
2 1
4
1 3 5 7
4
2 1 4 3
5
5 4 3 2 1
Output
YES
NO
YES
NO
YES

Note

For the first test case, we can increase a 2 a_2 a2 and a 3 a_3 a3 both by 1 1 1. The array is now [ 1 , 4 , 3 ] [1, 4, 3] [1,4,3].

Then we can decrease a 1 a_1 a1 and a 2 a_2 a2 both by 1 1 1. The array is now [ 0 , 3 , 3 ] [0, 3, 3] [0,3,3], which is sorted in non-decreasing order. So the answer is “YES”.

For the second test case, no matter how Ian perform the operations, a 1 a_1 a1 will always be larger than a 2 a_2 a2. So the answer is “NO” and Ian cannot pretend to be smart.

For the third test case, the array is already in non-decreasing order, so Ian does not need to do anything.

Code

// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <sstream>//整型转字符串
// #include <stack>//栈
// #include <deque>//堆/优先队列
// #include <queue>//队列
// #include <map>//映射
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const ll N=3e5+10;
ll a[N];

void solve()
{
    ll n; 
    cin>>n;
    
    for(ll i=1;i<=n;i++) cin>>a[i];
    
    if(n&1)
    {
        cout<<"YES"<<endl;
        return;
    }
    
    for(ll i=2;i<n;i++)
    {
        if(a[i]!=a[i-1])
        {
            ll idx=a[i]-a[i-1];
            a[i]-=idx;
            a[i+1]-=idx;
        }
    }
    if(a[n-1]<=a[n]) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    
    ll t;
    cin>>t;
    while(t--) solve();
    
    return 0;
}
    

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baijiahaobaidu.com 版权所有 湘ICP备2023023988号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务