CF920C Swap Adjacent Elements
题目描述
给定一个包含 $n$ 个整数的数组 $a$。从 $1$ 到 $n$ 的每个整数在这个数组中恰好出现一次。
对于某些下标 $i$($1 \le i \le n-1$),可以交换第 $i$ 个元素和第 $i+1$ 个元素,而对于其他下标则不可以。你可以按任意顺序执行任意次交换操作。对于第 $i$ 个元素与第 $i+1$ 个元素的交换次数没有限制(只要该位置的交换不被禁止)。
你能否通过一系列交换操作,使得这个数组按升序排列?
输入格式
第一行包含一个整数 $n$($2 \le n \le 2 \times {10}^5$),为数组中的元素个数。
第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 2 \times {10}^5$),为数组的元素。从 $1$ 到 $n$ 的每个整数恰好出现一次。
第三行包含一个长度为 $n-1$ 的字符串,每个字符是 0 或 1。如果第 $i$ 个字符是 1,那么你可以将第 $i$ 个元素与第 $i+1$ 个元素交换任意次,否则禁止交换第 $i$ 个元素与第 $i+1$ 个元素。
输出格式
如果可以通过你允许进行的任意一系列交换操作使得数组按升序排列,输出 `YES`。否则输出 `NO`。
说明/提示
在第一个样例中,你可以交换 $a_3$ 和 $a_4$,然后再交换 $a_4$ 和 $a_5$。
Translated By Qwen3.7 Max