苹果排序
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

为了欢庆一年的丰收,甜苹果园的大家玩起了游戏。

苹果杰克(Apple Jack)将若干个大小不一的苹果排成一列,现在她的家人们需要交换若干次任意两个不同位置的苹果,使得这些苹果按从小到大的顺序排好。

对于聪明的大家来说,这个游戏过于简单,因此苹果杰克追加了新的规则,假设某次交换了第 i 个位置的苹果和第 j 个位置的苹果,那么如果  为奇数,此次交换将产生1 的代价,否则产生 -1 的代价(其中  表示 x 的绝对值)。

现在苹果杰克想知道,是否存在一种交换方案,使得苹果有序后代价为 0



形式化的,现在给出一个排列,每次可以交换两个不同位置,如果这两个位置差为奇数代价为 1,否则为 -1,问是否能以和为 0 的代价从小到大排序。

输入描述:

多组数据,第一行一个 ,表示数据组数。

对于每组数据:

第一行一个正整数 ,表示排列长度。

第二行 n 个整数,表示排列。

输出描述:

对于每组数据,输出"YES"表示可以以 0 的代价和排序,否则输出"NO"。
示例1

输入

复制
2
3
3 1 2
5
5 1 4 3 2

输出

复制
YES
NO

备注:

样例 1: ,第一次交换代价为 1,第二次为 -1,因此输出"YES"。

样例 2:可以证明,不存在一种交换方案,因此输出"NO"。