5
27468 7465 74275 40573 40155
112071 76270 244461 264202 132397
1 777133331
2 107454154
3 652330694
4 792720519
 5
78188 56310 79021 70050 65217
115040 5149 128449 98357 36580
1 451393770
2 574046602
3 590130784
4 112514248
 7
1 1 1 1 1 1 1
1 3000000000 3000000000 3000000000 1000000000 1000000000 1000000000
1 1000000000
1 1000000000
1 1000000000
1 1000000000
1 1000000000
1 1000000000
 10
2 8 6 1 2 7 6 9 2 8
4 9 4 3 5 2 9 3 7 3
1 8
2 8
3 8
4 10
5 1
6 4
7 3
8 10
9 2
 11
1 1 1 1 1 1 1 1 1 1 1
1 1000000001 1000000001 1000000001 1000000001 1000000001 1000000001 1000000001 1000000001 1000000001 1000000001
1 1000000000
1 1000000000
1 1000000000
1 1000000000
1 1000000000
1 1000000000
1 1000000000
1 1000000000
1 1000000000
1 1000000000
 5
2 1 1 2 3
1 2 2 2 1
1 2
1 3
2 4
1 4

NO
 NO
 NO
 YES
 NO
 NO

import sys

_TOKENS = []
_TOKENS_POS = 0
def gs():
    global _TOKENS, _TOKENS_POS
    while _TOKENS_POS == len(_TOKENS):
        _TOKENS = raw_input().split(" ")
        _TOKENS_POS = 0
        while _TOKENS_POS < len(_TOKENS) and _TOKENS[_TOKENS_POS] == "":
            _TOKENS_POS += 1
    _TOKENS_POS += 1
    return _TOKENS[_TOKENS_POS-1]
def gi():
    return int(gs())
def pr(a, newline=True):
    if not isinstance(a, basestring):
        a = str(a)
    if newline:
        a += "\n"
    sys.stdout.write(a)
    sys.stdout.flush()

# write
n = gi()
a = [0] * n
x = [0] * n
k = [0] * n
for i in xrange(n):
    a[i] += gi()
for i in xrange(n):
    a[i] -= gi()
for i in xrange(1, n):
    x[i] = gi()-1
    k[i] = gi()
f = 1
for i in xrange(n-1, -1, -1):
    if a[i] < -10**20:
        f = 0
        break
    if i:
        fact = 1 if a[i] > 0 else k[i]
        a[x[i]] += fact * a[i]
    elif a[0] < 0:
        f = 0

print "YES" if f else "NO"
