Задача A. Переключение между окнами

Автор:Седьмая Всероссийская Командная олимпиада школьников по программированию
Входной файл: windows.in   Ограничение времени:2 сек
Выходной файл: windows.out   Ограничение памяти:64 Мб

Условие

Когда пользователь работает в операционной системе Windows, у него часто запущено несколько приложений. Каждое из приложений работает в отдельном окне. Для переключения между окнами используется комбинация клавиш "Alt+Tab". Эта комбинация делает активным окно, в котором пользователь работал перед тем, как перейти в текущее активное окно.

Чтобы переключиться в другое окно, можно нажать клавишу "Alt" и затем, не отпуская ее, несколько раз нажать клавишу "Tab". Чтобы понять, какое окно станет активным после этого, воспользуемся следующей моделью. Пусть запущено п приложений. Приложения в операционной системе организованы в виде списка и упорядочены по убыванию времени последней активности. То есть приложение, окно которого является активным в настоящий момент - первое в списке, приложение, окно которого было активно перед этим - второе, и т. д.

Если нажать клавишу "Alt" и затем, не отпуская ее, нажать клавишу "Tab" k раз, то активным станет окно приложения, которое находится на (k mod n) + 1-м месте в списке. Здесь a mod b означает остаток от деления a на b. Иными словами, операционная система рассматривает список как циклический, переходя после последнего элемента списка к первому.

При запуске нового приложения оно добавляется в начало списка.

Задана последовательность действий пользователя, где каждое действие - либо запуск приложения, либо переключение между окнами. Выведите в выходной файл, в каком порядке пользователь работал с приложениями.

Формат входного файла

Первая строка входного файла содержит целое число n - количество действий пользователя. Следующие n строк содержат описание действий пользователя. Запуск приложения описывается строкой "Run < имя приложения >". Здесь "Run < имя приложения >" - строка из не более чем 100 латинских букв, цифр и пробелов. Она отделена от слова "Run" ровно одним пробелом. Все имена приложений различны. Большие и маленькие буквы считаются различными. Переключение между приложениями описывается строкой "Alt+Tab-. . . +Tab", здесь подстрока "+Tab" повторена в точности столько раз, сколько раз пользователь нажал клавишу "Tab", не отпуская клавишу "Alt". Это количество не превышает 100. Первая команда во входном файле - всегда команда "Run".

Формат выходного файла

Выведите в выходной файл n строк - последовательность имен приложений, с которыми работал пользователь в порядке, в котором их окна становились активными.

Ограничения

1 ≤ n ≤ 1000

Примеры тестов

Входной файл (windows.in) Выходной файл (windows.out)
1
6	
Run Mozilla Firefox
Run Free Pascal
Alt+Tab
Run Miranda IM
Alt+Tab+Tab
Alt+Tab+Tab+Tab
Mozilla Firefox
Free Pascal
Mozilla Firefox
Miranda IM
Free Pascal
Free Pascal

Задача B. Важнейшая часть

Автор:А. Кленин
Входной файл: input.txt   Ограничение времени:2 сек
Выходной файл: output.txt   Ограничение памяти:64 Мб

Условие

Компания X желает разработать программу для автоматического поиска интересной информации на веб-страницах. В частности, было замечено, что авторы веб-сайтов любят выделять важную информацию при помощи курсива, жирного шрифта, подчёркивания и т.д. Директор компании высказал предположение, что самая важная информация будет выделена сильнее всего. Поэтому вам поручено написать программу, которая в данном тексте найдёт участок с наибольшим количеством выделений.

Исходными данными для программы будет строка символов, содержащая пары тегов <i> ... </i>, <u> ... </u>, <b> ... </b>, ограничивающие выделенные различным образом подстроки. Теги могут повторяться и вкладываться друг в друга, например This <b>is <i>a <u>sample of <b>very</b></u> important</i> text</b>. Ваша программа должна найти подстроку, вложенную в наибольшее количество тегов. Если таких подстрок несколько, следует вывести самую левую из них. В приведённом примере ответом будет подстрока very.

Формат входного файла

Во входном файле находится исходная строка текста.

Формат выходного файла

В выходном файле должна содержаться наиболее выделенная подстрока. Подстроку следует выводить целиком: от символа, следующего за открывающим тегом, до символа, предшествующего закрывающему тегу.

Ограничения

Длина исходной строки не превосходит 10000 символов. Открывающие и закрывающие теги образуют правильную скобочную последовательность (каждому открывающему тегу соответствует парный закрывающий, и наоборот). Например, последовательность <i>a<u>b</i></u> не может встретиться во входном файле. Между открывающим и закрывающим тегом есть по крайней мере один символ.

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
no selection
no selection
2
&amp;lt;b&gt;test&amp;lt;/b&gt;&amp;lt;b&gt;simple&amp;lt;/b&gt;
test

Задача C. Короткий текст и немного слов

Автор:A. Klenin
Входной файл: input.txt   Ограничение времени:5 сек
Выходной файл: output.txt   Ограничение памяти:200 Мб

Условие

Имеется текст и N слов. Длина текста L символов, длина каждого слова — от 1 до 255 символов. Требуется для каждого слова определить, входит ли оно в текст. Все слова и текст состоят из латинских букв. Заглавные и строчные буквы считаются различными.

Формат входного файла

В первой строке входного файла содержится текст, во второй — число N, в следующих N строках — слова.

Формат выходного файла

Выходной файле должен содержать N чисел 1 или 0, обозначающих, что соответствующее слово входит или не входит в текст.

Ограничения

1 ≤ L ≤ 255, 1 ≤ N ≤ 1000.

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
Longlongstring
2
short
string
0 1

0.028s 0.004s 11