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

Задача . A. Операции бывают разные


Задача

Темы: математика *800

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

  1. прибавить к \(a\) и \(b\) число \(k\), или
  2. прибавить к \(a\) число \(k\) и отнять от \(b\) число \(k\), или
  3. прибавить к \(b\) число \(k\) и отнять от \(a\) число \(k\).

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

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

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

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

Единственная строка каждого набора входных данных содержит два целых числа \(c\) и \(d\) \((0 \le c, d \le 10^9)\) — числа, в которые Василий хочет преобразовать \(a\) и \(b\).

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

Для каждого набора входных данных выведите одно целое число — минимальное количество операций, которое потребуется Василию, чтобы число \(a\) стало равно \(c\), а \(b\) равно \(d\), или \(-1\), если невозможно добиться равенств, используя описанные операции.

Примечание

Продемонстрируем один из неоптимальных примеров получения пары чисел \((3, 5)\).

  • Используем операцию первого типа с \(k=1\), тогда текущая пара чисел будет равна \((1, 1)\).
  • Используем операцию третьего типа с \(k=8\), тогда текущая пара чисел будет равна \((-7, 9)\).
  • Используем операцию второго типа с \(k=7\), тогда текущая пара чисел будет равна \((0, 2)\).
  • Используем операцию первого типа с \(k=3\), тогда текущая пара чисел будет равна \((3, 5)\).

Примеры
Входные данныеВыходные данные
1 6
1 2
3 5
5 3
6 6
8 0
0 0
-1
2
2
1
2
0

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

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