n=int(input()) d=map(int,input().split()) w=map(int,input().split()) uf=list(range(n)) rv=[False]*n def f(i): if i==uf[i]: return i else: uf[i]=f(uf[i]) return uf[i] def u(a,b): uf[f(a)]=f(b) for i,di in enumerate(d): a,b=(i+di)%n,(i-di)%n u(a,b) if a==b: rv[a]=True for i,b in enumerate(rv): j=f(i) if b: rv[j]=True out=[i for i,j in zip(uf,w) if j==0] print("Yes" if all([rv[i] or out.count(i)%2==0 for i in set(uf)]) else "No")