import std.algorithm;
import std.array;
import std.conv;
import std.math;
import std.range;
import std.stdio;
import std.string;
import std.typecons;

int readint() { return readln.chomp.to!int; }
int[] readints() { return readln.split.to!(int[]); }

bool calc(long[] as, long[] bs) {
    auto asum = as.sum;
    auto bsum = bs.sum;

    if (asum > bsum) return false;

    long r = 0;
    for (int i = 0; i < as.length; i++) {
        r += max(0, as[i] - bs[i]);
    }

    if (asum + 2 * r > bsum + r) return false;

    for (int i = 0; i < as.length; i++) {
        long x = bs[i] - as[i];
        if (x > 0) {
            r -= x / 2;
        }
    }

    return r <= 0;
}

void main() {
    readint;
    auto as = readln.split.to!(long[]);
    auto bs = readln.split.to!(long[]);
    writeln(calc(as, bs) ? "Yes" : "No");
}