Contest.samsu.ru :: соревнования по программированию
Русская версия || English version
Login:
Password:
Забыли пароль?
 пример поиска: Вася Пупкин
 

Разбор завалов (50 баллов)

Задачу добавил: alef

Успешно сдано решений: 19

Чтобы наклеить обои, пришлось отодвигать от стен большой книжный шкаф. Но сдвинуть его с места было бы просто невозможно, если бы из него не достали все книги. Впрочем, раз уж возникла необходимость в перекладывании книг, то это хороший повод расположить их по-новому, более удобно. Когда книги доставали из шкафа, то данные о них (автор, название, издательство и др.) заносились в список. Книги сложили в N стопок, и информация о том, какая книга в какой стопке и на каком месте находится, известна. Теперь обои наклеены, шкаф стоит на месте, а книги нужно расставить в новом порядке (новый список был сформирован из того, который составлялся при складывании книг в стопки).

Техника расстановки книг такова. Книги помещаются в шкаф, начиная с первой согласно новому списку. Чтобы достать очередную по списку книгу из стопки, книги снимаются с верха стопки по одной и складываются в новую, вспомогательную стопку. Когда нужная книжка найдена, она ставится в шкаф. Чтобы не множить количество стопок, образовавшиеся после изъятия книжки прежняя и новая стопки объединяются следующим образом. Если книг в новой стопке меньше или столько же, чем в прежней, они так же по одной перекладываются в прежнюю стопку. Если книг в новой стопке больше, чем в прежней, то все книжки из прежней стопки по одной перекладываются в новую стопку. Ваша задача – написать программу, подсчитывающую, сколько раз была переложена каждая книжка, прежде чем ее поставили в шкаф.

Формат входного файла input.txt: Первая строка – целое число N – количество стопок (1<=N<=20) Каждая из следующих N строк содержит описание стопки с соответствующим номером. Первое число в строке – количество книг Bj (1<=Bj<=20, 1<=j<=N) в стопке с соответствующим номером (в строке № 2 содержится описание стопки № 1 и т.д.; в строке № j+1 содержится описание стопки № j) Далее следуют Bj целых чисел через пробел. Каждое число – номер книги в новом списке, согласно которому книги ставятся в шкаф (номер книги не превосходит M = B1+B2+…+BN). Первое число соответствует книге, которая лежит в самом низу стопки, последнее – самой верхней книге.

Формат выходного файла output.txt M строк, каждая строка содержит одно целое число – количество перекладываний книги с соответствующим номером (согласно новому списку).

Пример входного файла
1
2 1 2

Пример выходного файла
0
1

Сдать задачу

Задать вопрос жюри по этой задаче