CF1365B Trouble Sort

题目描述

Ashish 有 $n$ 个元素排成一行。 每个元素由两个整数 $a_i$(元素的值)和 $b_i$(元素的类型,只有两种可能类型:$0$ 和 $1$)表示。他想要将这些元素按照 $a_i$ 的非递减顺序排序。 他可以进行如下操作任意次: - 选择任意两个元素 $i$ 和 $j$,满足 $b_i \ne b_j$,并交换它们。也就是说,他每次只能交换两种不同类型的元素。 请你告诉他,经过任意次操作后,是否可以将所有元素按照 $a_i$ 的非递减顺序排列。

输入格式

第一行包含一个整数 $t$($1 \le t \le 100$),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含一个整数 $n$($1 \le n \le 500$),表示数组的大小。 第二行包含 $n$ 个整数 $a_i$($1 \le a_i \le 10^5$),表示第 $i$ 个元素的值。 第三行包含 $n$ 个整数 $b_i$($b_i \in \{0, 1\}$),表示第 $i$ 个元素的类型。

输出格式

对于每个测试用例,如果可以将元素按值非递减排序,输出 "Yes";否则输出 "No"。输出时不区分大小写。

说明/提示

对于第一个用例:元素已经是有序的。 对于第二个用例:Ashish 可以先交换第 $1$ 个和第 $2$ 个元素,然后交换第 $2$ 个和第 $3$ 个元素。 对于第三个用例:元素已经是有序的。 对于第四个用例:无法进行任何交换操作,因为不存在 $b_i \ne b_j$ 的元素对,无法排序。 对于第五个用例:Ashish 可以先交换第 $3$ 个和第 $4$ 个元素,然后交换第 $1$ 个和第 $2$ 个元素。 由 ChatGPT 4.1 翻译