#include <bits/stdc++.h>
using namespace std;
int g[105], n, a[105], b[105];
int find(int i) {
  if (g[i] != i) g[i] = find(g[i]);
  return g[i];
}
void un(int a, int b) { g[find(a)] = find(b); }
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    g[i] = i;
    cin >> a[i];
  }
  for (int i = 1; i <= n; i++) {
    cin >> b[i];
    if (i + b[i] <= n) un(i, i + b[i]);
    if (i - b[i] > 0) un(i, i - b[i]);
  }
  for (int i = 1; i <= n; i++)
    if (find(i) == i) {
      int c[105] = {}, j;
      for (j = 1; j <= n; j++)
        if (find(j) == i) {
          c[j]++;
          c[a[j]]--;
        }
      for (j = 1; j <= n; j++)
        if (c[j] != 0) break;
      if (j < n) {
        cout << "NO";
        return 0;
      }
    }
  cout << "YES";
  return 0;
}
