해결한 사람
0
명
정답률
0.00
%
시간 제한
1000
ms
메모리 제한
245
MB
n개의 정수로 이루어진 배열 a가 있다. 1부터 n까지의 각 정수가 이 배열에 정확히 한 번씩 나타난다.
일부 인덱스 i (1 ≤ i ≤ n - 1)에 대해서는 i-th번째 원소와 (i + 1)-th번째 원소를 교환할 수 있지만, 다른 인덱스에 대해서는 교환할 수 없다. 교환 연산을 임의의 순서로 원하는 횟수만큼 수행할 수 있다. 해당 위치에서 교환이 금지되지 않았다면, i-th번째 원소와 (i + 1)-th번째 원소를 교환하는 횟수에는 제한이 없다.
일련의 교환 연산을 수행하여 이 배열을 오름차순으로 정렬할 수 있는가?
첫 번째 줄에는 배열의 원소 수를 나타내는 정수 n (2 ≤ n ≤ 200000)이 주어진다.
두 번째 줄에는 배열의 원소인 n개의 정수 a1, a2, ..., an (1 ≤ ai ≤ 200000)이 주어진다. 1부터 n까지의 각 정수가 정확히 한 번씩 나타난다.
세 번째 줄에는 n - 1개의 문자로 이루어진 문자열이 주어지며, 각 문자는 0 또는 1이다. i-th번째 문자가 1이면 i-th번째 원소와 (i + 1)-th번째 원소를 원하는 횟수만큼 교환할 수 있고, 그렇지 않으면 i-th번째 원소와 (i + 1)-번째 원소를 교환하는 것이 금지된다.
허용된 교환으로 이루어진 어떤 순서를 사용하여 배열을 오름차순으로 정렬할 수 있다면 YES을 출력한다. 그렇지 않으면 NO을 출력한다.
6
1 2 5 3 4 6
01110
YES
6
1 2 5 3 4 6
01010
NO
첫 번째 예제에서는 a3과 a4을 교환한 다음, a4와 a5을 교환할 수 있다.