아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Числа

면접 대비

시간 제한1초메모리 제한512 MB

요약
x(최대 10^17)와 k가 주어질 때, k=0이면 모든 자리 숫자가 같고 k=1이면 한 자리를 빼고 모두 같은, x 이상인 가장 작은 y를 구한다.
난이도

보통10점 중 7점

유형
그리디, 수학, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

Аня любит, когда числа состоят из одинаковых цифр. Поэтому ей нравятся числа 777 или 5555, а вот число 1234 ей совсем не нравится. 

Иногда у Ани бывает хорошее настроение, тогда ей по прежнему нравятся все числа, состоящие из одинаковых цифр, но также нравятся числа, в которых все цифры кроме одной одинаковые, как, например, в числе 77727. 

У Ани есть число xx. Аня хочет найти минимальное целое число y≥xy \ge x, которое ей понравится.

Требуется написать программу, которая по заданному целому числу xx и информации, хорошее ли настроение у Ани, находит минимальное целое число y≥xy \ge x, которое нравится Ане.

입력

Первая строка ввода содержит целое число xx (1≤x≤10171 \le x \le 10^{17}, обратите внимание, что число xx не может быть сохранено в стандартном 32-битном типе данных, необходимо использовать 64-битный тип данных, например <<long long>> в C++, <<int64>> в Паскале).

Вторая строка ввода содержит число kk, равное 00 или 11. Значение k=1k = 1 означает, что у Ани хорошее настроение, а значение k=0k = 0 --- что это не так.

출력

Следует вывести одно целое число yy.

Должны выполняться следующие свойства: 

  • y≥xy \ge x;
  • если k=0k = 0, то все цифры в десятичной записи числа yy должны совпадать;
  • если k=1k = 1, то все цифры в десятичной записи числа yy, кроме, может быть, одной, должны совпадать.

예제2

  1. 예제 1

    입력
    700
    0
    
    예상 출력
    777
    
  2. 예제 2

    입력
    700
    1
    
    예상 출력
    700