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

Задача . B. Получи два нуля


У вас есть два числа \(a\) и \(b\). Вы можете выполнять любое количество операций с этими числами (возможно нулевое).

В качестве каждой операции вы можете выбрать целое положительное число \(x\) и сделать присвоения \(a := a - x\), \(b := b - 2x\) либо \(a := a - 2x\), \(b := b - x\). Обратите внимание, что в разных операциях вы можете использовать разные значения \(x\).

Вам нужно выяснить, возможно ли сделать числа \(a\) и \(b\) равными \(0\) одновременно при помощи таких операций?

Вам нужно ответетить на \(t\) наборов входных данных.

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

Первая строка содержит число \(t\) (\(1 \le t \le 100\)) — количество наборов входных данных.

Единственная строка каждого набора входных данных содержит два числа \(a\) и \(b\) (\(0 \le a, b \le 10^9\)).

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

На каждый набор входных данных выведите YES если возможно сделать числа \(a\) и \(b\) равными \(0\) одновременно и NO в противном случае.

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

Примечание

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

  1. выбрать \(x = 4\) и сделать присовение \(a := a - x\), \(b := b - 2x\). Тогда числа изменятся следующим образом: \(a = 6 - 4 = 2\), \(b = 9 - 8 = 1\);
  2. затем выбрать \(x = 1\) и сделать присовение \(a := a - 2x\), \(b := b - x\). Тогда числа изменятся следующим образом: \(a = 2 - 2 = 0\), \(b = 1 - 1 = 0\).

Примеры
Входные данныеВыходные данные
1 3
6 9
1 1
1 2
YES
NO
YES

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

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