Темы --> Информатика --> Алгоритмы --> Задачи на моделирование
---> 78 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 10 11 12 13 14 15 16 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Мальчик Вася очень любит строить башни из кубиков. К сожалению, во время последней игры он увлёкся и потерял все кубики, кроме двух. Однако Вася не стал унывать и придумал новое развлечение. Заметив, что на каждой грани кубиков написано по одной цифре, он научился выкладывать двузначные числа из оставшихся игрушек. Вскоре мальчику стало интересно, сколько идущих подряд чисел, начиная с единицы, он сможет выложить с помощью двух кубиков. Помогите Васе найти ответ — такое максимальное число K, что все числа от 1 до K включительно можно получить, используя два оставшихся кубика.

Поскольку в игре используются оба кубика, числа, меньшие 10, Вася выкладывает с ведущими нулями (так, единицу можно получить, выбрав грань первого кубика с цифрой 0 и второго — с цифрой 1). Помните, что Вася умный мальчик: он знает, что перевернутый кубик с цифрой 6 позволяет получить цифру 9, и наоборот.

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

На вход подаются две строки, каждая из которых содержит 6 цифр, написанных на гранях соответствующего кубика.

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

Выведите максимально возможное число K. В случае, если даже число 1 получить невозможно, требуется вывести 0.

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

Входные данные
0 1 2 3 4 5
0 6 7 8 9 2
Выходные данные
10
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

В последнее время в одной из школ Н. Новгорода, а также на одном из факультетов ННГУ стала очень популярна игра в настольный теннис. Игроки часто сталкиваются со следующей проблемой: довольно трудно уследить за всем ходом матча и при этом не сбиться со счёта, поэтому очень хотелось бы иметь программу, подсчитывающую счёт. Напишите программу, которая по данному протоколу матча восстановит итоговый счёт.

Протокол состоит из последовательности следующих событий: service, net, out, goal, return, eom.

События обозначают следующее:

* service — подача (при этом игрок ударяет по мячу). service — всегда первое событие во входном файле. После него могут следовать net, out, goal, return.

* net — мяч ударяется о половину поля того игрока, который ударял по мячу последним, слишком много раз. Игрок, который ударял по мячу последним, проигрывает розыгрыш. После этого события могут идти service или eom.

* out — мяч уходит в аут. Игрок, который ударял по мячу последним, проигрывает розыгрыш. После этого события могут идти service или eom.

* goal — игрок, который ударял по мячу последним, забивает гол (т.,е. выигрывает розыгрыш). Далее может быть service или eom.

* return — игрок отбивает мяч, ударяя по нему (игроки ударяют по мячу по очереди). Далее может быть net, out, goal, return.

* eom — матч окончен. Это всегда последнее событие.

Когда игрок выигрывает розыгрыш, ему начисляется очко. Когда игрок проигрывает розыгрыш, очко начисляется его противнику.

Подачи подаются по пять штук, т.,е. первые пять подач подаёт первый игрок, следующие пять — другой и т.д. Полное количество подач может быть не кратным пяти, в таком случае последняя серия подач будет короче пяти штук.

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

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

Во входном файле находится список событий. События расположены по одному на строке без пробелов. Последовательность событий удовлетворяет всему, что было сказано выше; пустых строк во входном файле нет (кроме, возможно, строк после события eom). Всего событий не более 50000.

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

В выходной файл выведите два числа: очки того, кто подавал первым, потом — очки его противника.

Примеры
Входные данные
service
goal
service
out
service
net
service
return
return
return
out
service
return
goal
service
goal
eom
Выходные данные
2 4
Входные данные
service
out
eom
Выходные данные
0 1
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

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

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

Понравилась мысль такая царю Тридевятого царства. Подумал он ввести и у себя такие порядки. Собрал царь советников своих, и говорит: подготовьте мне список дней, в которые гулять можно. Только не на год, а на \(N\) дней вперед — посмотрим, дескать, что получится; понравится — сделаем круглогодичным.

И вот вчера принесли советники царю список. Но вот незадача: каждый советник свой список приготовил, да еще и обоснование предложил, какой праздник в какой из этих дней надо отмечать. И у всех советников праздники важные, но у всех — разные! Царь думал-думал и решил: а возьмем их все — объединим предложения советников! Если какой-то день есть в списке хотя бы одного советника, то объявим этот день праздничным, и пускай народ гуляет! Глядишь, и не будет недовольных.

Только одна проблема осталась: некоторые дни оказались в списках сразу у нескольких советников. Но царь и тут нашел выход: перенесем некоторые праздники на более поздние дни, так, чтобы в каждый день получался только один праздник, и переносы были бы как можно короче.

Пусть, например, четыре советника сразу предложили сделать некоторый день (пускай день 5) праздничным. Тогда перенесем три из этих четырех праздников на дни 6, 7 и 8 — так, что праздничными будут дни с 5 по 8 включительно. А если оказывается, что, например, день 7 тоже предложен в качестве праздничного кем-нибудь из советников, то перенесем этот праздник еще дальше — на день 9.

Напишите программу, которая, зная предложения советников, определит, какие дни будут праздничными, а какие нет. Не забывайте, что праздники можно переносить только на более поздние дни; на более ранние переносить нельзя.

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

На первой строке входного файла находится одно число \(N\) — количество дней, на которые царь хочет произвести планировку праздников.

На второй строке входного файла находятся \(N\) неотрицательных целых чисел — для каждого дня указано, сколько советников предложили считать его праздничным.

Гарантируется, что \(1\leq N\leq 100\,000\), и что сумма всех чисел во второй строке входного файла не превосходит \(100\,000\).

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

В выходной файл выведите одну строку, состоящую из символов “+” или “-”. “+” обозначайте праздничный день, “-” — непраздничный. Выведите как минимум \(N\) символов — по одному для каждого из дней, на которые проводится планирование. Но если праздники приходится переносить на дни после \(N\)-го (что допустимо), то выведите больше символов — до последнего праздничного дня.

Символы разделяйте пробелами.

Система оценки
  • Подзадача 0 (0 баллов) тест из условия.
  • Подзадача 1 (50 баллов) \( N \le 1000 \). Необходимые подгруппы: 0.
  • Подзадача 2 (50 баллов) без дополнительных ограничений. Необходимые подгруппы: 0-1.
Примеры
Входные данные
5
0 3 0 0 0
Выходные данные
- + + + -
Входные данные
10
0 4 0 2 0 0 0 0 1 0
Выходные данные
- + + + + + + - + -
Входные данные
3
0 3 0
Выходные данные
- + + +
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Том Сойер, блуждая по лабиринту, записывал карандашом изменения в направлении своего движения и сколько шагов он прошел в том или ином направлении. Его запись могла выглядеть так: F 5 R 1 B 2 L 1. Здесь F означает движение вперед (F может быть только первым и обязательным элементом в записи пути), R — поворот направо, L — налево, B — движение назад (видимо, путник зашел в тупик), число после буквы обозначает количество шагов, сделанных после изменения направления. Другие обозначения в записи не встречаются.

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

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

Во входном файле приводится запись всего маршрута Тома в одной строке. Буква F является первой и встречается один раз. После каждой буквы через 1 пробел расположено натуральное число, не превосходящее 9. Следующая буква расположена также ровно через 1 пробел после числа. Количество изменений в направлении не превосходит 10.

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

Ответ выдать в том же формате, что и входные данные (он также будет начинаться с буквы F).

Примеры
Входные данные
F 5 R 1 B 2 L 1
Выходные данные
F 5 L 1 L 1
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Современные исследования показали, что стая голодных мышей в поисках сыра действует следующим образом: если поблизости есть несколько кусков сыра, то каждая мышь выбирает себе ближайший, после чего все мыши одновременно начинают двигаться в направлении выбранного куска сыра. Как только мышь, или несколько мышей, достигают точки назначения и там есть сыр, они его съедают, а все мыши, которые прибежали позже, остаются голодными. Скорость передвижения всех мышей одинакова. Если существует несколько способов выбрать ближайшие куски сыра, то мыши выберут такой способ, в соответствии с которым минимальное количество мышей стаи останутся голодными. Чтобы проверить эту теорию, ученые решили провести эксперимент. Они расположили N мышей и M кусков сыра в прямоугольной системе координат таким образом, что все мыши находятся на некоторой прямой y = Y 0 , а все куски сыра — на другой прямой y = Y 1 . Но чтобы проверить результаты эксперимента, ученым нужна программа, которая воспроизводит поведение стаи голодных мышей. Напишите программу, вычисляющую количество мышей, которые останутся без сыра.

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

Первая строка входного файла содержит четыре целых числа N ( 1 ≤ N ≤ 10 5 ), M ( 0 ≤ M ≤ 10 5 ), Y 0 ( 0 ≤ Y 0 ≤ 10 7 ), Y 1 ( 0 ≤ Y 1 ≤ 10 7 ). Вторая строка содержит последовательность из N строго возрастающих чисел — абсциссы мышей. Третья строка содержит M строго возрастающих чисел — абсциссы кусков сыра. Все абсциссы целые и не превышают по модулю 10 7

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

Единственная строка выходного файла должна содержать единственное число — минимальное количество мышей, которые останутся без сыра.

Примеры
Входные данные
3 2 0 2
0 1 3
2 5
Выходные данные
1

Страница: << 10 11 12 13 14 15 16 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест