#include <bits/stdc++.h>
using namespace std;
int uset[1005] = {0};
int find(int x) {
  if (x != uset[x]) uset[x] = find(uset[x]);
  return uset[x];
}
int main() {
  int n, i, j;
  int a[105], b;
  scanf("%d", &n);
  for (i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    uset[i] = i;
  }
  for (i = 1; i <= n; i++) {
    scanf("%d", &b);
    if (i + b <= n && i + b > 0) uset[find(i + b)] = find(i);
    if (i - b > 0 && i - b <= n) uset[find(i - b)] = find(i);
  }
  for (i = 1; i <= n; i++) {
    if (find(a[i]) != find(i)) {
      printf("NO\n");
      return 0;
    }
  }
  printf("YES\n");
  return 0;
}
