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

Задача . C. Вика и ценники


Вика пришла в свой любимый магазин косметики «Золотая груша». Она заметила, что цены на \(n\) товаров изменились с её последнего визита.

Она решила проанализировать, как сильно изменились цены, и для каждого из \(n\) товаров посчитала разницу между старой и новой ценой.

Вике понравилось считать разницу между ценами и она решила продолжить этот процесс.

Пусть старые цены представимы в виде массива неотрицательных чисел \(a\), а новые цены в виде массива неотрицательных чисел \(b\). Оба массива имеют одинаковую длину \(n\).

За одну операцию Вика строит новый массив \(c\) по принципу: \(c_i = |a_i - b_i|\). Затем мы переименовываем массив \(c\) в массив \(b\), а массив \(b\) — в массив \(a\), после чего Вика повторяет с ними операцию.

Так, например, если \(a = [1, 2, 3, 4, 5, 6, 7]\); \(b = [7, 6, 5, 4, 3, 2, 1]\), то \(c = [6, 4, 2, 0, 2, 4, 6]\). Далее \(a = [7, 6, 5, 4, 3, 2, 1]\); \(b = [6, 4, 2, 0, 2, 4, 6]\).

Вика решила называть пару массивов \(a\), \(b\) скучной, если после некоторого числа таких операций все элементы массива \(a\) станут нулями.

Выведите «YES», если исходная пара массивов является скучной, «NO» — в противном случае.

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

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится единственное целое число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных. Далее следует описание наборов входных данных.

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

Вторая строка каждого набора входных данных содержит \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) (\(0 \le a_i \le 10^9\)) — старые цены на товары.

Третья строка каждого набора входных данных содержит \(n\) целых чисел \(b_1, b_2, \ldots, b_n\) (\(0 \le b_i \le 10^9\)) — новые цены на товары.

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

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

Для каждого набора входных данных выведите «YES», если пара массивов цен является скучной, «NO» — иначе.

Вы можете выводить каждую букву в любом регистре (строчную или заглавную). Например, строки «yEs», «yes», «Yes» и «YES» будут приняты как положительный ответ.

Примечание

В первом наборе входных данных массив \(a\) изначально нулевой.

Во втором наборе входных данных после первой операции \(a = [1, 2, 3], b = [0, 0, 0]\). После второй операции \(a = [0, 0, 0], b = [1, 2, 3]\).

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


Примеры
Входные данныеВыходные данные
1 9
4
0 0 0 0
1 2 3 4
3
1 2 3
1 2 3
2
1 2
2 1
6
100 23 53 11 56 32
1245 31 12 6 6 6
7
1 2 3 4 5 6 7
7 6 5 4 3 2 1
3
4 0 2
4 0 2
3
2 5 2
1 3 4
2
6 1
4 2
2
0 0
0 3
YES
YES
NO
NO
YES
YES
NO
YES
YES

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

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