Задача №114540. Числа
Аня любит, когда числа состоят из одинаковых цифр. Поэтому ей нравятся числа 777 или 5555, а вот число 1234 ей совсем не нравится.
Иногда у Ани бывает хорошее настроение, тогда ей по прежнему нравятся все числа, состоящие из одинаковых цифр, но также нравятся числа, в которых все цифры кроме одной одинаковые, как, например, в числе 77727.
У Ани есть число \(x\). Аня хочет найти минимальное целое число \(y \ge x\), которое ей понравится.
Требуется написать программу, которая по заданному целому числу \(x\) и информации, хорошее ли настроение у Ани, находит минимальное целое число \(y \ge x\), которое нравится Ане.
Первая строка ввода содержит целое число \(x\) (\(1 \le x \le 10^{17}\), обратите внимание, что число \(x\) не может быть сохранено в стандартном 32-битном типе данных, необходимо использовать 64-битный тип данных, например « long long » в C++, « int64 » в Паскале).
Вторая строка ввода содержит число \(k\), равное \(0\) или \(1\). Значение \(k = 1\) означает, что у Ани хорошее настроение, а значение \(k = 0\) — что это не так.
Следует вывести одно целое число \(y\).
Должны выполняться следующие свойства:
-
[noitemsep,leftmargin=2cm]
- \(y \ge x\);
- если \(k = 0\), то все цифры в десятичной записи числа \(y\) должны совпадать;
- если \(k = 1\), то все цифры в десятичной записи числа \(y\), кроме, может быть, одной, должны совпадать.
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Ограничения | Необходимые подзадачи | Информация о проверке |
1 | 15 | \(1 \le x \le 10^5\), \(k = 0\) | полная | |
2 | 20 | \(1 \le x \le 10^{17}\), \(k = 0\) | 1 | первая ошибка |
3 | 21 | \(1 \le x \le 10^5\), \(k = 0\) или \(k = 1\) | 1 | полная |
4 | 44 | \(1 \le x \le 10^{17}\), \(k = 0\) или \(k = 1\) | 1–3 | первая ошибка |
700 0
777
700 1
700