#sjjx02. 数字排列

数字排列

题目背景

小陶最近迷上了一个数字排列游戏。他手里有一叠卡牌,每天都在研究如何通过固定的规则将它们收拾整齐。

题目描述

小陶手里有 nn 张排成一排的卡牌,每张卡牌上都写着一个正整数,这些数字恰好是 11nn 的一个排列 p1,p2,,pnp_1, p_2, \dots, p_n

现在,小陶拿到了两个特殊的正整数 xxyy。小陶的目标是通过一系列的交换操作,将这叠卡牌变成升序排列(即 [1,2,,n][1, 2, \dots, n])。由于游戏规则限制,小陶每次只能选择一个位置 ii,并执行以下两种交换之一:

  1. 交换 pip_ipi+xp_{i+x} 的位置(要求 i+xni + x \le n);
  2. 交换 pip_ipi+yp_{i+y} 的位置(要求 i+yni + y \le n)。

小陶可以进行任意次操作(也可以不操作)。请你帮小陶判断一下,他最终是否有可能将这叠卡牌变成升序排列?

输入格式

每个测试文件均包含多组测试数据。

第一行输入一个整数 T(1T2×104)T(1 \le T \le 2 \times 10^4) ,代表数据组数。

对于每组测试数据:

  • 第一行包含三个整数 $n, x, y(4 \le n \le 2 \times 10^5 且 1 \le x < y < n)$。
  • 第二行包含 nn 个整数 p1,p2,,pnp_1, p_2, \dots, p_n,表示小陶手里的卡牌初始排列。

输出格式

对于每组测试数据,输出一行。

如果小陶可以通过操作将卡牌排成升序,输出 Yes;否则输出 No

输入输出样例

输入样例 1

2
4 1 2
4 3 2 1
5 2 4
1 3 2 4 5

输出样例 1

Yes
No

说明/提示

  • 保证单个测试文件的所有 nn 之和不超过 2×1052 \times 10^5
  • 输入的 pp 保证是一个长度为 nn 的排列(即由 1,2,,n1, 2, \dots, nnn 个整数按任意顺序组成,每个整数均恰好出现一次)。