#CODEFORCESP3191. 元素交换
元素交换
Swap Adjacent Elements
题面翻译
输入格式:
第一行一个整数 n (2≤n≤200000)
第二行 n个整数 a1,a2,⋯,an(1≤ai≤200000) 。每个 1 到 n 间的整数正好出现一次。
第三行一个字符串,只包含 0 或者 1 。如果第 i个字符是1 ,你就可以把 ai与 ai+1交换。
输出格式:
如果可以排序,输出 YES,否则输出 NO。
感谢@小粉兔 提供的翻译
题目描述
You have an array consisting of integers. Each integer from to appears exactly once in this array.
For some indices ( ) it is possible to swap -th element with -th, for other indices it is not possible. You may perform any number of swapping operations any order. There is no limit on the number of times you swap -th element with -th (if the position is not forbidden).
Can you make this array sorted in ascending order performing some sequence of swapping operations?
输入格式
The first line contains one integer ( ) — the number of elements in the array.
The second line contains integers , , ..., ( ) — the elements of the array. Each integer from to appears exactly once.
The third line contains a string of characters, each character is either 0 or 1. If -th character is 1, then you can swap -th element with -th any number of times, otherwise it is forbidden to swap -th element with -th.
输出格式
If it is possible to sort the array in ascending order using any sequence of swaps you are allowed to make, print YES. Otherwise, print NO.
样例 #1
样例输入 #1
6
1 2 5 3 4 6
01110
样例输出 #1
YES
样例 #2
样例输入 #2
6
1 2 5 3 4 6
01010
样例输出 #2
NO
提示
In the first example you may swap and , and then swap and .