Поликарп работает над внедрением отображения лайков в социальной сети Codehorses. Количество лайков следует отображать в виде, который легко бы читался пользователями. Решено, что для больших значений будет использована запись вида 123K (сто двадцать три тысячи) или даже 56M (пятьдесят шесть миллионов).
Утверждена следующая стратегия отображения:
- количество будет отображено либо в виде целого числа от 0 до 999, либо в виде целого положительного количества тысяч (от 1K до 999K), либо в виде целого положительного количества миллионов (от 1M и далее);
- заданное точное количество лайков \(n\) при отображении должно быть округлено к ближайшей записи из пункта выше (при неоднозначности округления надо округлять вверх) — например, \(1785\) должно быть округлено к 2K, но не к 1K; \(4500000\) должно быть округлено к 5M.
Помогите Поликарпу реализовать эту часть функциональности: по заданному целому неотрицательному числу лайков \(n\) выведите его запись в интерфейсе Codehorses.
Выходные данные
Выведите \(t\) ответов на заданные наборы входных данных в порядке из записи в тесте. Каждое выведенное значение должно иметь один из следующих видов:
- либо целое число от 0 до 999 — соответствует просто записанному количеству,
- либо запись количества тысяч от 1K до 999K,
- либо запись количества миллионов от 1M до 2000M.
Ответ равен такой записи, которая является ближайшей (с точки зрения модуля разности) к заданному числу \(n\). Если такую форму округления можно совершить неоднозначно, то округлите вверх (к большему значению).
Примечание
Рассмотрим некоторые наборы входных данных:
- \(1782\) может быть представлено либо как 1K, либо как 2K, но 2K — ближайшая запись;
- \(1500\) одинаково удалено и от 1K, и от 2K, поэтому надо округлять вверх;
- \(999999\) должно быть записано как 1M, так как такая запись ближе, чем 999K.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
9 999 123 0 1782 31415926 1500 999999 35499710 2000000000
|
999
123
0
2K
31M
2K
1M
35M
2000M
|