---> 154 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 16 17 18 19 20 21 22 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

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

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

сначала вводится число \(N\) (натуральное, не превышает 1000) – общее количество придворных. Затем вводится \(N\) чисел \(a_i\) (целые, неотрицательное, не превышают \(N\)) – номер придворного, благодаря которому придворный \(i\) получил свою должность. Если \(a_i\)=0, то это означает, что этот придворный назначен на свою должность самим Королем. Затем вводится число \(K\) (натуральное, не превышает \(N\)) – общее количество явных заговорщиков. Затем вводится \(K\) чисел (натуральные, не превышают \(N\)) – номера заговорщиков. Гарантируется, что данные корректны (например, что придворный не мог назначить на должность сам себя, или, что двое придворных не могли назначить друг друга одновременно).

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

выведите единственное число – количество придворных, которые сохранят свои должности после окончания расследования.

Примеры
Входные данные
3 0 0 1
1 3
Выходные данные
2
Входные данные
5 0 0 1 1 2
1 1
Выходные данные
2
Входные данные
4 0 1 2 3
1 2
Выходные данные
1
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Совсем недавно появилась в продаже новая компьютерная игра «Морской бой—3». Вася купил себе эту игру и теперь играет в нее в свободное от занятий время. Особенно ему нравится в одной из миссий управлять самолетом. Изначально самолет находится на палубе неподвижного авианосца и готов в любой момент к взлету. Задача игрока в этой миссии состоит в уничтожении \(N\) кораблей противника. После уничтожения всех кораблей самолет должен вернуться обратно на авианосец.

Для простоты будем считать плоской поверхность моря, где располагается авианосец. Введем прямоугольную декартову систему координат и разместим авианосец в начале координат. Каждый из кораблей в начальный момент игры находится в некоторой точке (\(x\), \(y\)), и сразу после начала игры движется равномерно и прямолинейно так, что его вектор скорости равен (\(V_x\), \(V_y\)).

Конструктивные особенности самолета таковы, что он может двигаться с любой скоростью, не превосходящей \(U\). Для того, чтобы сбросить бомбу, которая была специально придумана для этой игры, самолету необходимо находиться непосредственно над кораблем. Корабли считаются точками, т.е. размером кораблей можно пренебречь. Считается также, что самолет может мгновенно взлететь с палубы авианосца, и время падения бомбы на цель равно нулю.

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

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

Первая строка входного файла содержит число \(N\), определяющее количество кораблей (1 \(\le\) \(N\) \(\le\) 9). Вторая строка входного файла содержит целое число \(U\) (1 \(\le\) \(U\) \(\le\) 10000), задающее скорость самолета в метрах в секунду. Последующие \(N\) строк описывают все корабли. Каждая строка содержит четыре целых числа \(x\), \(y\), \(V_x\), \(V_y\), не превосходящих 10000 по модулю и определяющих начальные координаты и скорость корабля, соответственно. Координаты кораблей заданы в метрах, скорости — в метрах в секунду.

Гарантируется, что самолет летит быстрее, чем плывет любой из кораблей.

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

В первой строке выходного файла выведите минимальное время, требуемое на выполнение миссии. Требуемая точность — не менее \(10^{−3}\).

Примеры
Входные данные
1
1000
10 10 0 0
Выходные данные
0.0282842712474619
#1804
  
Темы: [Перебор]
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

В недавно открытой раздевалке школы «Интеллектуал» решено поставить такие же шкафчики, как и в уже давно используемых раздевалках, но более новой модификации — состоящие из \(H*W\) ячеек. Напомним, что в каждую ячейку можно поставить ящичек, чтобы хранить в нём свои вещи. Однако новый директор школы запретил ученикам хранить свои вещи вне ящичков, поэтому тем, кому ящички не достались, приходится просить кого-то из владельцев соседних четырёх (или менее, если ячейка находится на границе) ячеек похранить свои вещи у себя. Если же ни у кого из соседей по ячейкам нет ящичков, этот ученик жалуется в администрацию.

Классному руководителю вдруг стало интересно, сколько же существует способов для каждого ученика определить, давать ли ему ящичек, чтобы никто не пожаловался в администрацию.

Количество учеников равно количеству ячеек.

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

В единственной строке входного файла содержатся два натуральных числа \(H\) и \(W\) (1 \(\le\) \(H\) * \(W\) \(\le\) 22).

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

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

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

К 2110 году город Флэтбург, являясь одним из крупнейших городов мира, не имеет обходной автомагистрали, что является существенным препятствием для его развития как крупнейшего транспортного центра мирового значения. В связи с этим ещё в 2065 году при разработке Генерального плана развития Флэтбурга была определена необходимость строительства кольцевой автомобильной дороги.

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

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

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

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

Входной файл содержит четыре строки. Каждая из них содержит по два целых числа: \(x_i\) и \(y_i\) — координаты места расположения достопримечательности. Первая строка описывает первую достопримечательность, вторая — вторую, третья — третью, четвёртая — четвёртую. Никакие две достопримечательности не находятся в одной точке.

Все числа во входном файле не превосходят 100 по абсолютной величине.

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

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

На второй строке требуется вывести координаты центра дороги минимальной длины и её радиус. Если существует несколько разных способов построения дороги минимальной длины, необходимо вывести координаты центра и радиус любой из них. Координаты центра и радиус должны быть выведены с точностью не хуже \(10^{-5}\) и не должны превышать \(10^9\). Гарантируется, что существует хотя бы один план с такими параметрами.

Примеры
Входные данные
0 0
0 1
1 0
2 2
Выходные данные
7
1.5 0.5 1.14412281
Входные данные
0 0
0 1
1 0
1 1
Выходные данные
Infinity
0.5 0.5 0.0
ограничение по времени на тест
4.0 second;
ограничение по памяти на тест
64 megabytes

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

Небольшая компания «Домострой» также решила выйти на этот рынок и стала предлагать место для рекламы на своих блоках заборов. Блок представляет собой параллелепипед размером \(1\times1\times L\), на одной из сторон которого есть место для рекламы — пространство размера \(1\times L\), в которое можно вписать ровно \(L\) букв латинского алфавита.

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

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

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

После того, как некоторое число \(K\) блоков, каждый из которых имеет длину \(L\), поставили друг на друга, получилась прямоугольная таблица размером \(K\times L\), в каждой клетке которой находится буква латинского алфавита. Каждый рекламный блок соответствует строке этой таблицы. Теперь содержимое этой таблицы выписывается по столбцам, начиная с самого левого. При этом в каждом столбце буквы выписываются сверху вниз. В случае, изображённом на рисунке, в результате этого процесса получилась бы строка «TOEIIZENITKN». Необходимо, чтобы рекламная надпись, требуемая заказчику, входила в получившуюся строку как подстрока «TOEIIZENITKN».

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

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

Первая строка входного файла содержит два натуральных числа \(N\) и \(L\) — число различных типов блоков на складе и длина каждого блока соответственно (\(1\le N\le100\), \(1\le L\le100\)). Последующие \(N\) строк содержат по одной записи длиной \(L\), состоящей из строчных латинских букв — надписи на блоках соответствующего типа. Надписи на блоках разных типов не совпадают.

Последняя строка входного файла содержит новую рекламную надпись \(s\) — строку, состоящую только из строчных латинских букв (\(1\le|s|\le200\)). Можно считать, что на складе находится неограниченное число блоков каждого типа.

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

В первой строке выходного файла необходимо вывести натуральное число \(K\) — минимальное количество блоков, которое нужно использовать для составления новой рекламы. Следующая строка должна содержать \(K\) чисел — номера типов блоков, которые нужно для этого использовать, перечисляя их сверху вниз. Типы блоков нумеруются с единицы в порядке их задания во входном файле.

Если ответов несколько, выведите любой из них. Если решения не существует, выведите в выходной файл число \(-1\).

Примеры
Входные данные
3 4
tiet
oink
ezin
zenit
Выходные данные
3
1 2 3
Входные данные
2 11
sillysample
happysample
sam
Выходные данные
1
2
Входные данные
2 3
baa
aab
bb
Выходные данные
2
2 2
Входные данные
2 3
aaa
bbb
cc
Выходные данные
-1

Страница: << 16 17 18 19 20 21 22 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест