import numpy as np from scipy.sparse.csgraph import connected_components from scipy.sparse import csr_matrix N = int(input()) D = tuple(map(int, input().split())) W = tuple(map(int, input().split())) same_set = set() edge = [] for i, d in enumerate(D): if (p := (i - d) % N) == (q := (i + d) % N): same_set.add(p) else: edge.append((p, q)) edge = np.array(edge).T matr = csr_matrix((np.ones(len(edge[0]), dtype="int64"), edge), (N, N)) p, labels = connected_components(matr) lst = [set() for _ in range(p)] for i, x in enumerate(labels): lst[x].add(i) for st in lst: if st.isdisjoint(same_set) and sum((1 - W[i]) for i in st) % 2: print('No') break else: print('Yes')