Линейные структуры(59 задач)
Корневая эвристика (sqrt декомпозиция)(14 задач)
Разреженные таблицы (sparse table)(2 задач)
Система непересекающихся множеств(16 задач)
Хеш(35 задач)
Персистентные структуры данных(2 задач)
Реализуйте структуру данных "дек". Напишите программу, содержащую описание дека и моделирующую работу дека, реализовав все указанные здесь методы. Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы:
ok
.ok
.ok
.bye
и завершить работу.Гарантируется, что количество элементов в деке в любой момент не превосходит 100. Все операции pop_front
, pop_back
, front
, back
всегда корректны.
Вводятся команды управления деком, по одной на строке.
Требуется вывести протокол работы дека, по одному сообщению на строке.
push_back 1 back exit
ok 1 bye
size push_back 1 size push_back 2 size push_front 3 size exit
0 ok 1 ok 2 ok 3 bye
Реализуйте структуру данных "дек". Напишите программу, содержащую описание дека и моделирующую работу дека, реализовав все указанные здесь методы. Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы:
ok
.ok
.ok
.bye
и завершить работу.Гарантируется, что количество элементов в деке в любой момент не превосходит 100. Перед исполнением операций pop_front
, pop_back
, front
, back
программа должна проверять, содержится ли в деке хотя бы один элемент. Если во входных данных встречается операция pop_front
, pop_back
, front
, back
, и при этом дек пуст, то программа должна вместо числового значения вывести строку error
.
Вводятся команды управления деком, по одной на строке.
Требуется вывести протокол работы дека, по одному сообщению на строке
push_back 1 back exit
ok 1 bye
size push_back 1 size push_back 2 size push_front 3 size exit
0 ok 1 ok 2 ok 3 bye
Реализуйте структуру данных "дек". Напишите программу, содержащую описание дека и моделирующую работу дека, реализовав все указанные здесь методы. Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы:
ok
.ok
.ok
.bye
и завершить работу.pop_front
, pop_back
, front
, back
программа должна проверять, содержится ли в деке хотя бы один элемент. Если во входных данных встречается операция pop_front
, pop_back
, front
, back
, и при этом дек пуст, то программа должна вместо числового значения вывести строку error.
Вводятся команды управления деком, по одной на строке.
Требуется вывести протокол работы дека, по одному сообщению на строке.
push_back 1 back exit
ok 1 bye
size push_back 1 size push_back 2 size push_front 3 size exit
0 ok 1 ok 2 ok 3 bye
Максимальное время работы на одном тесте: | 5 секунд |
От вас требуется определить вес минимального остовного дерева для неориентированного взвешенного связного графа.
В первой строке входных данных находятся числа N и M (1 <= N <= 100; 1 <= M <= 6000), где N – количество вершин в графе, а M – количество рёбер. В каждой из последующих M строк записано по тройке чисел A, B, C, где A и B – номера вершин, соединённых ребром, а C – вес ребра (натуральное число, не превышающее 30000)
Вывести одно число – искомый вес.
3 3 1 2 1 2 3 2 3 1 3
3
Когда пользователь работает в операционной системе Windows, у него часто запущено несколько приложений. Каждое из приложений работает в отдельном окне. Для переключения между окнами используется комбинация клавиш «Alt+Tab». Эта комбинация делает активным окно, в котором пользователь работал перед тем, как перейти в текущее активное окно.
Чтобы переключиться в другое окно, можно нажать клавишу «Alt» и затем, не отпуская ее, несколько раз нажать клавишу «Tab». Чтобы понять, какое окно станет активным после этого, воспользуемся следующей моделью. Пусть запущено n приложений. Приложения в операционной системе организованы в виде списка и упорядочены по убыванию времени последней активности. То есть приложение, окно которого является активным в настоящий момент – первое в списке, приложение, окно которого было активно перед этим – второе, и т. д.
Если нажать клавишу «Alt» и затем, не отпуская ее, нажать клавишу «Tab» k раз, то активным станет окно приложения, которое находится на (k mod n) + 1-м месте в списке. Здесь a mod b означает остаток от деления a на b. Иными словами, операционная система рассматривает список как циклический, переходя после последнего элемента списка к первому.
При запуске нового приложения оно добавляется в начало списка.
Задана последовательность действий пользователя, где каждое действие – либо запуск приложения, либо переключение между окнами. Выведите список имен приложений в том порядке, в котором с ними работал пользователь.
В первой строке вводится целое число n – количество действий пользователя ( 1n
1000). Следующие n строк содержат описание действий пользователя.
Запуск приложения описывается строкой «Run <имя приложения»>. Здесь «<имя приложения»> – строка из не более чем 100 латинских букв, цифр и пробелов. Она отделена от слова «Run» ровно одним пробелом. Все имена приложений различны. Большие и маленькие буквы считаются различными.
Переключение между приложениями описывается строкой «Alt+Tab+...+Tab», здесь подстрока «+Tab» повторена в точности столько раз, сколько раз пользователь нажал клавишу «Tab», не отпуская клавишу «Alt». Это количество не превышает 100.
Первая команда во входных данных – всегда команда «Run».
Выведите n строк – последовательность имен приложений, с которыми работал пользователь в порядке, в котором их окна становились активными.
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