Напишіть програму , яка проходить через рядок без пробілів символів (можна припустити , що вони є цифри 0
до 9
, але нічого в тому , як вони повинні бути оброблені не залежить від цього) , і додає простору в відповідності з наступними правилами.
- Нехай поточний маркер буде порожнім рядком, а раніше випромінені лексеми - порожнім набором.
- Ітерація через символи рядка. Для кожного символу спочатку додайте символ до поточного маркера. Тоді, якщо поточний маркер ще не є в наборі раніше випромінених жетонів, додайте до цього набору поточний маркер і нехай новий поточний маркер буде порожнім рядком.
- Якщо ви досягнете кінця рядка, поточний маркер порожній, виведіть раніше випромінені лексеми у порядку випромінювання, розділені пробілом. В іншому випадку вивести початковий рядок дослівно.
Вхідні дані
Вхід до STDIN повинен бути послідовністю цифр.
Вихідні дані
Програма повинна надрукувати результат, як зазначено в кроці 3.
Зразки
Зразки входів
2015
10101010
4815162342
101010101010
3455121372425
123456789101112131415
314159265358979323846264338327950288419716939937
Зразки виходів
2 0 1 5
10101010
4 8 1 5 16 2 3 42
1 0 10 101 01 010
3 4 5 51 2 1 37 24 25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
3 1 4 15 9 2 6 5 35 8 97 93 23 84 62 64 33 83 27 95 0 28 841 971 69 39 937
Це кодовий гольф, тому застосовуються стандартні правила CG. Виграє найкоротша програма в байтах.
(Будь ласка, вимагайте будь-яких роз’яснень у коментарях. Я все ще нова в цьому. Дякую!)
1 0 10
, наступна ітерація знайде 1
(вже використана), потім просуньте одну, щоб знайти 10
(вже використану), а потім просуньте одну, щоб знайти 101
, яка є новою і буде "додана". Потім буде додано пробіл, і ви потрапите до нового 0
, який уже використано, але тут знаходиться в кінці рядка. Отже, вихід буде 1 0 10 101 0
недійсним ( 0
повторюється), і сценарій повинен просто вивести рядок введення. Це можна зробити лише за 1010
умови, що 101
його вже використовували.
If a unique number cannot be formed at the end of the string, then the input should be printed verbatim
10101010 не можна розділити, щоб воно було надруковано як є.
1
, що буде повторенням. Отже, замість цього ви рухаєтеся правою у пробілі 5, а потім знову рухаєтесь правою на кроці 4, і знову вводите крок 5 і створюєте 101
.
4815162342
Я бачу, що ти там робив, братане .