Олимпиадный тренинг

Задача . E2. Сортировка слиянием


Рассмотрим следующий код сортировки слиянием на языке Python:

def sort(a):
n = len(a)
b = [0 for i in range(n)]
log = []

def mergeSort(l, r):
if r - l <= 1:
return
m = (l + r) >> 1
mergeSort(l, m)
mergeSort(m, r)
i, j, k = l, m, l
while i < m and j < r:
if a[i] < a[j]:
log.append('0')
b[k] = a[i]
i += 1
else:
log.append('1')
b[k] = a[j]
j += 1
k += 1
while i < m:
b[k] = a[i]
i += 1
k += 1
while j < r:
b[k] = a[j]
j += 1
k += 1
for p in range(l, r):
a[p] = b[p]

mergeSort(0, n)
return "".join(log)

Как можно заметить, этот код использует логирование — важнейший инструмент разработки.

Старший разработчик ВКонтакте Вася сгенерировал перестановку \(a\) (массив из \(n\) различных целых чисел от \(1\) до \(n\)), дал её на вход функции sort и получил на выходе строку \(s\). На следующий день строку \(s\) Вася нашёл, а перестановка \(a\) потерялась.

Вася хочет восстановить любую перестановку \(a\) такую, что вызов функции sort от неё даст ту же строку \(s\). Помогите ему!

Входные данные

Ввод содержит непустую строку \(s\), состоящую из символов 0 и 1.

В этой версии задачи для любого теста существует перестановка длины не более \(10^3\), удовлетворяющая условию. Тем не менее, ваш ответ может иметь любую длину, в том числе превышающую \(10^3\).

Выходные данные

В первой строке выведите целое число \(n\) — длину перестановки.

Во второй строке выведите \(n\) различных целых чисел \(a_0, a_1, \ldots, a_{n-1}\) (\(1 \le a_i \le n\)) — элементы перестановки.

Если существует несколько вариантов ответа, выведите любой из них.


Примеры
Входные данныеВыходные данные
1 00000000000000000000000000000000
16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
2 11111111111111111111111111111111
16
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
3 101011010001100100011011001111011000011110010
16
13 6 1 7 12 5 4 15 14 16 10 11 3 8 9 2

time 2000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
Python4
Комментарий учителя