Олимпиадный тренинг

Задача . B. Добрый Антон


Борису опять нужна помощь Антона в составлении задачи. На этот раз Антону нужно решить для Бориса следующую задачу:

Есть две массива целых чисел \(a\) и \(b\) длины \(n\). Оказалось, что массив \(a\) содержит элементы только из множества \(\{-1, 0, 1\}\).

Антон может проделать следующую последовательность операций любое количество раз:

  1. Выбрать любую пару индексов \((i, j)\) такую, что \(1 \le i < j \le n\). Одну и ту же пару индексов \((i, j)\) можно выбирать сколько угодно раз.
  2. Добавить \(a_i\) к \(a_j\). Другими словами, \(j\)-й элемент массива становится равным \(a_i + a_j\).

Например, из массива \([1, -1, 0]\) за одну операцию можно получить массивы \([1, -1, -1]\), \([1, 0, 0]\) и \([1, -1, 1]\).

Антон хочет узнать, можно ли применить некоторое количество (возможно, нулевое) операций выше к массиву \(a\), чтобы получить массив \(b\). Можете ли вы ему помочь?

Входные данные

Каждый тест содержит несколько наборов входных данных.

Первая строка содержит количество наборов входных данных \(t\) (\(1 \le t \le 10000\)). Далее следуют описания наборов входных данных.

Первая строка каждого тестового случая содержит единственное целое положительное число \(n\) (\(1 \le n \le 10^5\))  — длину массивов.

Вторая строка каждого тестового случая содержит \(n\) чисел \(a_1, a_2, \dots, a_n\) (\(-1 \le a_i \le 1\))  — элементы массива \(a\). Среди этих элементов могут быть одинаковые значения.

Третья строка каждого тестового случая содержит \(n\) чисел \(b_1, b_2, \dots, b_n\) (\(-10^9 \le b_i \le 10^9\))  — элементы массива \(b\). Среди этих элементов могут быть одинаковые значения.

Гарантируется, что сумма \(n\) по всем тестовым случаям не превосходит \(10^5\).

Выходные данные

Для каждого наборов входных данных выведите одну строку содержащую «YES» если можно преобразовать массив \(a\) так, чтобы он стал равен массиву \(b\), или «NO» иначе.

Вы можете выводить каждую букву каждого ответа в любом регистре (верхнем или нижнем).

Примечание

В первом наборе входных данных можно выбрать \((i, j)=(2, 3)\) дважды, затем \((i, j)=(1, 2)\) также дважды. Эти операции изменят массив следующим образом: \([1, -1, 0] \to [1, -1, -2] \to [1, 1, -2]\).

Во втором наборе входных данных нельзя сделать числа на второй позиции равными.

В третьем наборе входных данных можно выбрать \((i, j)=(1, 2)\) \(41\) раз. Аналогично в четвертом.

В последнем наборе входных данных преобразовать массив \(a\) в массив \(b\) невозможно.


Примеры
Входные данныеВыходные данные
1 5
3
1 -1 0
1 1 -2
3
0 1 1
0 2 2
2
1 0
1 41
2
-1 0
-1 -41
5
0 1 -1 1 -1
1 1 -1 1 -1
YES
NO
YES
YES
NO

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя