Ограничения: время – 200ms/500ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Саша хочет сшить коврик из квадратных кусочков ткани двух цветов.
Чтобы коврик был идеальным, должны выполняться следующие условия:
1. Все кусочки ткани должны быть использованы.
2. Коврик должен иметь прямоугольную форму.
3. По периметру коврика должна быть полоса шириной `L` (`L>=1`) из кусочков одного цвета, а
кусочки другого цвета должны образовывать прямоугольник размером `(H-2*L) xx (W-2*L)` в центре коврика
(где `H` -- высота, а `W` -- ширина коврика, а , `H<=W`).
![width:400px|Примеры коврика](48853.png)
Для заданного количества кусочков ткани найдите высоту и ширину коврика, который Саша сможет сшить. Если Саша может сшить идеальный коврик разных размеров, перечислите все варианты размеров.
Первая строка ввода содержит одно целое число `A` (`1 <= A <= 10^9`) – количество кусочков ткани жёлтого цвета,
вторая строка ввода содержит одно целое число `B` (`1 <= B <= 10^9`) – количество кусочков ткани красного цвета.
В первой строке вывода должно содержаться одно число `N` -- количество вариантов для размеров коврика (возможно, 0).
Затем выведите `N` строк, содержащих по два целых числа в каждой: высота `H` и ширина `W` коврика (`H <= W`).
Строки должны идти в порядке возрастания высоты.
```sample Пример ввода 1
28
36
```
```sample Пример вывода 1
2
4 16
8 8
```
```sample Пример ввода 2
1
1
```
```sample Пример вывода 2
0
```
Коврики для первого примера показаны на рисунке выше.
*Система оценки и описание подзадач*
||.u|Подзадача 1 (50 баллов)||
`1 <= A <= 1000`, `1 <= B <= 1000`, идеальные коврики возможны только для L=1
В этой подзадаче 5 тестов, каждый тест оценивается в 10 баллов. Баллы за каждый тест начисляются независимо.
||.u|Подзадача 2 (30 баллов)||
`1 <= A <= 10^9`, `1 <= B <= 10^9`, идеальные коврики возможны только для L=1
Необходимые подзадачи: 1.
В этой подзадаче 5 тестов, каждый тест оценивается в 6 баллов. Баллы за каждый тест начисляются независимо.
||.u|Подзадача 3 (20 баллов)||
`1 <= A <= 10^9`, `1 <= B <= 10^9`. L может быть любым
Необходимые подзадачи: 1, 2.
В этой подзадаче 5 тестов, каждый тест оценивается в 4 балла. Баллы за каждый тест начисляются независимо.
По запросу сообщается результат окончательной проверки на каждом тесте.