时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
为了欢庆一年的丰收,甜苹果园的大家玩起了游戏。
苹果杰克(Apple Jack)将若干个大小不一的苹果排成一列,现在她的家人们需要交换若干次任意两个
不同位置的苹果,使得这些苹果按从小到大的顺序排好。
对于聪明的大家来说,这个游戏过于简单,因此苹果杰克追加了新的规则,假设某次交换了第

个位置的苹果和第

个位置的苹果,那么如果

为奇数,此次交换将产生

的代价,否则产生

的代价(其中

表示

的绝对值)。
现在苹果杰克想知道,是否存在一种交换方案,使得苹果有序后代价为

?
形式化的,现在给出一个排列,每次可以交换两个
不同位置,如果这两个位置差为奇数代价为

,否则为

,问是否能以和为

的代价从小到大排序。
输入描述:
多组数据,第一行一个
,表示数据组数。
对于每组数据:
第一行一个正整数
,表示排列长度。
第二行
个整数,表示排列。
输出描述:
对于每组数据,输出"YES"表示可以以
的代价和排序,否则输出"NO"。
备注:
样例 1:
,第一次交换代价为
,第二次为
,因此输出"YES"。
样例 2:可以证明,不存在一种交换方案,因此输出"NO"。