#include<iostream>
#include<string.h>
using namespace std;
int sum[200005];
int a[200005];
int main(){
int n;
cin >> n;
for(int i = 1; i <= n; i ++){
scanf("%d",&a[i]);
}
char s[200005];
scanf("%s",s + 1);
int l = strlen(s + 1);
for(int i = 1; i <= l; i ++){
sum[i] = sum[i - 1] + s[i] - '0';
}
for(int i = 1; i <= n; i ++){
if(a[i] > i){
if(sum[a[i] - 1] - sum[i - 1] == (a[i] - i))
continue;
else{
puts("NO");
return 0;
}
}
if(a[i] < i){
if(sum[i - 1] - sum[a[i] - 1] == (i - a[i]))
continue;
else{
puts("NO");
return 0;
}
}
}
puts("YES");
return 0;
}
147. Insertion Sort List | 310. Minimum Height Trees |
2110. Number of Smooth Descent Periods of a Stock | 2109. Adding Spaces to a String |
2108. Find First Palindromic String in the Array | 394. Decode String |
902. Numbers At Most N Given Digit Set | 221. Maximal Square |
1200. Minimum Absolute Difference | 1619B - Squares and Cubes |
1619A - Square String | 1629B - GCD Arrays |
1629A - Download More RAM | 1629C - Meximum Array |
1629D - Peculiar Movie Preferences | 1629E - Grid Xor |
1629F1 - Game on Sum (Easy Version) | 2148. Count Elements With Strictly Smaller and Greater Elements |
2149. Rearrange Array Elements by Sign | 2150. Find All Lonely Numbers in the Array |
2151. Maximum Good People Based on Statements | 2144. Minimum Cost of Buying Candies With Discount |
Non empty subsets | 1630A - And Matching |
1630B - Range and Partition | 1630C - Paint the Middle |
1630D - Flipping Range | 1328A - Divisibility Problem |
339A - Helpful Maths | 4A - Watermelon |