Антон Алексеевич, преподаватель математики в старшей школе, решил продемонстрировать практическое применение математических расчётов и провести мастеркласс по очистке квадратной маркерной доски длины n квадратной губкой длины a. Антон Алексеевич использует свой фирменный метод, затирая каждый сантиметр доски без лишних движений. Он начинает с верхнего левого угла доски, двигаясь слева направо, затем вниз, влево, вверх, повторяя этот процесс, пока вся доска не будет очищена, но не проходя губкой по тем местам, которые уже очищены (см. рисунок ниже). Губка не вращается во время стирания с доски. Гарантируется, что длина стороны губки делит длину стороны доски без остатка. Определите длину ломаной линии, которую описывает верхний левый угол квадратной губки при затирании квадратной доски. Формат входных данных Первая строка содержит целое число n (1≤n≤109) длину стороны доски. Вторая строка содержит целое число a (1≤a≤109, a≤n) длину стороны губки. nn делится на a без остатка. Формат выходных данных В единственной строке выведите число длину ломаной, которую пройдёт левый верхний угол губки. Обратите внимание, что ответ в этой задаче может превышать возможное значение 32битной целочисленной переменной, поэтому необходимо использовать 64битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#). Система оценки Решения, правильно работающие при n, a≤103, будут оцениваться в 40 баллов. Замечание Проиллюстрируем пример к условию. Жёлтым на схеме обозначена губка, голубым очищенная область, красным маршрут левого верхнего угла губки.
n, a = int(input()), int(input()) print(n * n // a - a)
Простейшая задача на смекалку. Чтобы очистить n² клеток, надо сдвинуть губку (n/a)²-1 раз на a клеток. И абсолютно неважно, по какой траектории производится очистка.
Антон Алексеевич использует свой фирменный метод, затирая каждый сантиметр доски без лишних движений. Он начинает с верхнего левого угла доски, двигаясь слева направо, затем вниз, влево, вверх, повторяя этот процесс, пока вся доска не будет очищена, но не проходя губкой по тем местам, которые уже очищены (см. рисунок ниже). Губка не вращается во время стирания с доски. Гарантируется, что длина стороны губки делит длину стороны доски без остатка.
Определите длину ломаной линии, которую описывает верхний левый угол квадратной губки при затирании квадратной доски.
Формат входных данных
Первая строка содержит целое число n (1≤n≤109) длину стороны доски.
Вторая строка содержит целое число a (1≤a≤109, a≤n) длину стороны губки. nn делится на a без остатка.
Формат выходных данных
В единственной строке выведите число длину ломаной, которую пройдёт левый верхний угол губки.
Обратите внимание, что ответ в этой задаче может превышать возможное значение 32битной целочисленной переменной, поэтому необходимо использовать 64битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#).
Система оценки
Решения, правильно работающие при n, a≤103, будут оцениваться в 40 баллов.
Замечание
Проиллюстрируем пример к условию. Жёлтым на схеме обозначена губка, голубым очищенная область, красным маршрут левого верхнего угла губки.
Ввод
6
2
Вывод
16