Problem:
Score : 300 points

Problem Statement

You are given two integer sequences of length N: a_1,a_2,..,a_N and b_1,b_2,..,b_N.
Determine if we can repeat the following operation zero or more times so that the sequences a and b become equal.

Operation: Choose two integers i and j (possibly the same) between 1 and N (inclusive), then perform the following two actions simultaneously:

Add 2 to a_i.

Add 1 to b_j.

Constraints

1 ≤ N ≤ 10 000

0 ≤ a_i,b_i ≤ 10^9 (1 ≤ i ≤ N)

All input values are integers.

Input

Input is given from Standard Input in the following format:

N
a_1 a_2 .. a_N
b_1 b_2 .. b_N

Output

If we can repeat the operation zero or more times so that the sequences a and b become equal, print Yes; otherwise, print No.

Sample Input 1

3
1 2 3
5 2 2

Sample Output 1

Yes

For example, we can perform three operations as follows to do our job:

First operation: i=1 and j=2. Now we have a = \{3,2,3\}, b = \{5,3,2\}.

Second operation: i=1 and j=2. Now we have a = \{5,2,3\}, b = \{5,4,2\}.

Third operation: i=2 and j=3. Now we have a = \{5,4,3\}, b = \{5,4,3\}.

Sample Input 2

5
3 1 4 1 5
2 7 1 8 2

Sample Output 2

No

Sample Input 3

5
2 7 1 8 2
3 1 4 1 5

Sample Output 3

No

Solution in PHP (5.6.30) (judge verdict: Wrong Answer)

<?php

$sc = new Scanner();
$out = new out();
$n = $sc->nextInt();
$a = [];
for($i = 0 ; $i < $n; $i++) {
    $a[] = $sc->nextInt();
}
$cnt2 = 0;
$cnt1 = 0;
$test = [];
for($i = 0 ; $i < $n; $i++) {
    if ($t = $a[$i] - $sc->nextInt()) {
        $test[] = $t;
        if ($t < 0) {
            if ($t != -1) {
                if ($t % 2 == 0) {
                    $cnt2 -= $t / 2;
                } else {
                    $cnt2 -= ceil($t / 2) - 1;
                    $cnt1 += ceil($t / 2);
                }
            }
        } else {
            $cnt1 += $t;
        }
    }
}
if (array_sum($test) <= 0 && ($cnt1 == $cnt2 || $cnt2 - 1 == $cnt1 || $cnt2 - 2 == $cnt1)) {
    $out->println("Yes");
} else {
    $out->println("No");
}

class Scanner {
    private $arr = [];
    private $count = 0;
    private $pointer = 0;
    public function next() {
        if($this->pointer >= $this->count) {
            $str = trim(fgets(STDIN));
            $this->arr = explode(' ', $str);
            $this->count = count($this->arr);
            $this->pointer = 0;
        }
        $result = $this->arr[$this->pointer];
        $this->pointer++;
        return $result;
    }
    public function hasNext() {
        return $this->pointer < $this->count;
    }
    public function nextInt() {
        return (int)$this->next();
    }
    public function nextDouble() {
        return (double)$this->next();
    }
}
class out {
    public static function println($str = "") {
        echo $str . PHP_EOL;
    }
}