eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Градуйований лексикографічний порядок

Градуйований лексикографічний порядок

Розглянемо цілі числа від \textbf{1} до \textbf{n}. Назвемо \textit{вагою числа} його суму цифр, і позначимо вагу числа \textbf{x} як \textbf{w}(\textbf{x}). Потім упорядкуємо числа у так званому \textit{градуйованому лексикографічному порядку}. Нехай задано два числа \textbf{a} та \textbf{b}. Якщо \textbf{w}(\textbf{a}) < \textbf{w}(\textbf{b}), то число \textbf{a} йде у градуйованому лексикографічному порядку до числа \textbf{b}. Якщо ж \textbf{w}(\textbf{a}) = \textbf{w}(\textbf{b}), тоді число \textbf{a} йде у градуйованому лексикографічному порядку до числа \textbf{b} якщо і лише якщо десяткове подання числа \textbf{a} лексикографічно менше десятикового подання числа \textbf{b}. Наприклад, у цьому порядку: \begin{itemize} \item число \textbf{120} йде до числа \textbf{4}; \item число \textbf{555} йде до числа \textbf{78}; \item число \textbf{20} йде до числа \textbf{200}. \end{itemize} За заданими \textbf{n} і \textbf{k}, знайдіть номер числа \textbf{k} і число, яке знаходиться на \textbf{k}-му місці, у градуйованому лексикографічному упорядкуванні натуральних чисел від \textbf{1} до \textbf{n}. \InputFile У вхідному файлі записані числа \textbf{n} і \textbf{k} (\textbf{1} ≤ \textbf{k} ≤ \textbf{n} ≤ \textbf{10^18}). \OutputFile У першому рядку вихідного файлу виведіть номер числа \textbf{k}. У другому рядку виведіть число, яке знаходиться на \textbf{k}-му місці.
Ліміт часу 3 секунди
Ліміт використання пам'яті 32 MiB
Вхідні дані #1
20
10
Вихідні дані #1
2
14