Темы
    Информатика(2656 задач)
---> 42 задач <---
Источники --> Личные олимпиады --> Нижегородская олимпиада школьников
Страница: << 2 3 4 5 6 7 8 >> Отображать по:
ограничение по времени на тест
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

На плоскости заданы дуга окружности, отрезок и точка. Как отрезок, так и дуга окружности непрозрачны. Определите, какая часть дуги видна из этой точки.

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

Входной файл состоит из трёх строк, описывающих данные объекты. Первая строка описывает дугу и содержит пять чисел — координаты центра дуги, радиус дуги, полярный угол точки начала дуги и полярный угол точки конца дуги. Полярные углы заданы в градусах и отсчитываются относительно центра дуги против часовой стрелки от положительного направления оси \(x\). Вторая строка описывает точку и содержит два числа — её координаты. Третья строка описывает отрезок и содержит четыре числа — координаты начала и конца отрезка. Все числа во входном файле вещественны и не превосходят \(10^6\) по модулю. Гарантируется, что как радиус окружности, так и длина отрезка больше нуля, что полярный угол конца дуги больше, чем полярный угол начала, и что разность этих углов не превосходит 360.

Гарантируются, что никакие два из данных трёх объектов не имеют общих точек.

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

Выведите в выходной файл одно число на отрезке от 0 до 1 — относительную часть дуги, которая видна из данной точки. Ваш ответ должен отличаться от правильного не более, чем на 10−4.

Примечание
Система оценивания:
  • Группа тестов 1 (40 баллов). В этой группе во всех тестах дуга либо полностью видна, либо полностью не видна.
  • Группа тестов 2 (60 баллов). Нет ограничений. Только при прохождении группы 1.
Примеры
Входные данные
2 1 2 120 420
3 6
2 4 2.5 4

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

ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

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

Зачёт проводится в аудитории, в которой стоит один большой круглый стол, за которым ровно \(N\) мест; студентов в группе тоже ровно \(N\). Преподаватель считает, что списывать сложнее всего, если тот, у кого списывают, находится на расстоянии ровно \(L\) от того, кто списывает. Таким образом, преподаватель хочет рассадить студентов так, чтобы между каждыми двумя студентами, которые могут списывать друг у друга, сидело бы ровно \(L\)−1 других студентов.

Помогите преподавателю найти такую рассадку.

Примечание Ясно, что в зависимости от того, с какого именно из двух студентов начинать считать, и в зависимости от того, в какую сторону считать, получится разное количество человек, сидящих между ними. Преподавателю требуется лишь, чтобы для каждой пары, начиная с хотя бы какого-нибудь из этих двух студентов, хотя бы в какую-нибудь сторону до другого студента насчитывался бы ровно \(L\)−1 студент.

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

Первая строка входного файла содержит три числа: \(N\), \(L\) и \(K\), где \(N\) — количество студентов в группе, \(L\) — оптимальное “антисписывательное” расстояние, а \(K\) — количество пар студентов, которые могут друг у друга списывать. Далее следуют \(K\) строк по два числа в каждой — номера студентов, входящих в очередную пару. Студенты нумеруются от 1 до \(N\). Все числа во входном файле натуральные и не превосходят 8000; гарантируется, что \(L\) < \(N\).

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

Если искомая рассадка существует, то выведите в выходной файл любой из возможных ответов, т.е. \(N\) чисел — номера студентов в порядке обходе стола против часовой стрелки начиная с любого места. Если решения не существует, выведите −1.

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

Выходные данные
1 5 2 4 3

ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

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

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

Система дорог в области устроена следующим простым образом. Есть \(N\) населённых пунктов, некоторые из которых соединены дорогами. Между каждой парой пунктов существует не более одной дороги, и более того, для каждой пары населённых пунктов есть ровно один способ добраться из одного в другой (возможно, через промежуточные посёлки).

В каждом населённом пункте можно разместить ремонтную подстанцию. В принципе, фирма может размещать как крупные подстанции, которые даже в одиночку смогут обслуживать всю область, но при этом будут требовать больших расходов на содержание, так и небольшие станции, которые будут обслуживать лишь прилегающие населённые пункты, но при этом будут обходиться намного дешевле. Фирма уже определила, что каждую подстанцию можно характеризовать параметром “мощность”, которая может принимать значения, являющиеся целыми положительными числами (равна нулю мощность быть не может). Подстанция с мощностью \(k\) будет обслуживать населённый пункт u, в котором она расположена, и все другие населённые пункты, до которых можно добраться из u, использовав не более k дорог (т.е. при \(k\)=1, например, подстанция обслуживает свой населённый пункт и все, которые напрямую соединены с ним дорогой). Стоимость содержания такой подстанции пропорциональна её мощности.

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

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

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

В первой строке входного файла находится одно число \(N\) — количество населённых пунктов в области (1<=\(N\)<=300). Далее следуют \(N\)−1 строка, описывающая дороги. Каждая строка содержит два числа — номера населённых пунктов, которые соединяет эта дорога. Населённые пункты нумеруются от 1 до \(N\).

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

В первую строку выходного файла выведите одно число — оптимальную суммарную мощность подстанций. Далее выведите \(N\) чисел, описывающих какое-нибудь оптимальное решение. \(i\)-ое из этих чисел должно быть равно мощности подстанции, которую в вашем решении надо расположить в пункте \(i\), или 0, если в населённом пункте \(i\) не должна находиться подстанция.

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

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

ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

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

В автопарке компании есть \(n\) маршруток, \(i\)-ая маршрутка номинально вмещает \(a_i\) пассажиров. По договору с департаментом транспорта города компания обязана обслуживать \(m\) маршрутов. Накопленная статистика говорит, что оптимальнее всего, если \(j\)-ый маршрут обслуживает такси номинальной вместимостью \(b_j\) пассажиров. Каждая маршрутка приписывается не более чем к одному маршруту, каждому маршруту приписывается не более одной маршрутки.

Разумеется, каждый уважающий себя диспетчер при назначении маршруток на маршруты старается минимизировать потери, которые бывают следующими:

  • если \(i\)-ая маршрутка обслуживает \(j\)-ый маршрут, то компания теряет \(|a_i-b_j|\) у.е., так как чем меньше заполнено такси, тем больше не используются его возможности, а чем больше переполнено такси, тем чаще его приходится ремонтировать;
  • от каждой простаивающей маршрутки, то есть такой, которой не назначен ни один маршрут, компания несет убыток \(p\) у.е.;
  • компании приходится платить штраф \(q\) у.е. департаменту транспорта за каждый не обслуживаемый маршрут.

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

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

В первой строке входного файла находятся четыре целых числа — \(n\), \(m\), \(p\), \(q\) (\(1\leq n,m \leq 10^3\), \(0 \leq p,q \leq 10^4\)).

Во второй строке через пробел указаны целые числа \(a_1\), ..., \(a_n\) (\(1\leq a_i \leq 10^4\)).

В третьей строке через пробел указаны целые числа \(b_1\), ..., \(b_m\) (\(1\leq b_j \leq 10^4\)).

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

Выведите единственное число — минимально возможные потери компании.

Примечание

В примере 1 первая маршрутка назначена на второй маршрут с потерями \(|22-20|=2\) у.е., вторая маршрутка назначена на первый маршрут с потерями \(|12-11|=1\) у.е.. Итого: потери 3 у.е..

В примере 2 одна из маршруток назначается на единственный маршрут с нулевым штрафом, а вторая вынуждена простаивать. Итого: потери 100 у.е.

Примеры
Входные данные
2 2 100 100
22 12
11 20
Выходные данные
3
Входные данные
2 1 100 500
13 13
13 
Выходные данные
100

Страница: << 2 3 4 5 6 7 8 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест