Алгоритмы(1657 задач)
Структуры данных(279 задач)
Интерактивные задачи(17 задач)
Другое(54 задач)
Коренной житель Ирландии лепрекон Патрик однажды крупно поссорился со своей женой Клариссой и решил в срочном порядке убежать на остров Бора-Бора. Для этого у мудрого Патрика есть n спрятанных на одной прямой горшочков с лепреконским золотом. Ссора произошла спонтанно, поэтому Патрик не смог запастись достаточным количеством магических амулетов и талисманов, а это значит, что его магических сил хватит лишь на одну телепортацию, но зато в любое место, например — к любому из горшочков с золотом. Эту телепортацию необходимо использовать, до начала сбора горшочков с золотом.
Так как лепреконы по природе своей не очень хорошие бегуны, без помощи телепортаций Патрик может перемещаться со скоростью 1 метр в минуту. Но на один из горшочков Кларисса наложила заклинание исчезновения, и он пропадет через t минут, но ровно в t минут Патрик еще может успеть схватить исчезающий горшочек. Помогите Патрику за минимальное время собрать все горшочки с золотом! Если он не заберет хотя бы один из них, ему не хватит золота на путешествие.
В первой строке число n — количество горшочков с золотом — и число t — время исчезновения (в минутах) одного из них ( 2 ≤ n , t ≤ 100 ). В следующей строке n чисел — координаты горшочков в метрах. Все числа различны и по абсолютной величине не превосходят 100. Координаты горшочков даны в порядке возрастания. В следующей строке записан номер горшочка, который исчезнет через t минут.
В первой строке выведите минимальное время, которое потребуется Патрику для сбора всего золота. В следующей строке выведите n чисел — порядок, в котором следует собирать горшочки.
5 5 1 4 9 16 25 2
24 1 2 3 4 5
6 4 1 2 3 6 8 25 5
31 5 1 2 3 4 6
На одном Очень Важном Предприятии решили наградить некоторых k его работников. Конечно же, решили сделать это в соответствии со следующей Очень Важной Процедурой.
Всех n работников выстроили в один ряд. Причем, получилось так, что каждый работник видит только своих непосредственных соседей в этом ряду. Для повышения уровня производства на Очень Важном Предприятии начальство решило сделать так, чтобы каждый награжденный считал, что наградили именно его и только его. Для этого необходимо, чтобы в ряду не было двух рядом стоящих награжденных работников.
Вам необходимо написать программу, которая будет считать количество способов раздать таким образом k наград среди n стоящих в ряд работников. Так как это число может быть весьма большим, необходимо найти его остаток от деления на простое число m .
В первой и единственной строке входного файла заданы три целых неотрицательных числа n , k и m — количество работников на Очень Важном Предприятии, количество наград и простой модуль ( 1 ≤ k ≤ n ≤ 100000, 1 ≤ m ≤ 10 9 ).
В выходной файл выведите единственное целое число — ответ на задачу, взятый по модулю простого числа m .
3 2 569
1
5 2 673
6
В одном очень большом городе устраивают необычные скачки. От обычных скачек они отличаются тем, что проходят не на ипподроме, а на специально заготовленной трассе. Она представляет из себя бесконечную прямую на плоскости.
Трасса очень длинная, поэтому соревнования могут затягиваться не на один день и проходить не только днем, но и ночью. Организаторы глубоко задумались о том, как они будут освещать трассу, ведь освещать бесконечно длинную трассу не так уж и просто. Для этого они закупили N прожекторов, которые будут установлены в некоторых точках города. Известно что прожекторы освещают землю, образуя круги.
Так получилось, что компания, которая устанавливала оборудование, перепутала места установки, поэтому некоторые прожекторы могут вообще не освещать трассу. Теперь соревнование может потерпеть неудачу, организаторы очень обеспокоены тем, что зрители не увидят самые интересные моменты соревнований из-за ошибки мастеров. Помогите организаторам выяснить, какова длина освещенной части трассы.
Первая строка входного файла содержит четыре числа x 1 , y 1 , x 2 , y 2 — координаты двух точек на прямой. Во второй — строке число N ( 1 ≤ N ≤ 100000 ) — количество прожекторов. В каждой их следующих N строк заданы 3 числа x , y и R , координаты и радиус кругов, образованных прожекторами.
Все координаты и радиусы — целые числа, не превышающие по модулю 10 5 .
В выходной файл выведите ответ на задачу, с точностью до 10 - 4 .
0 0 1 1 1 5 5 1
2.000000000000001
1 1 2 3 3 5 5 5 -5 5 8 -3 -5 3
18.446020156281286
Островное государство Исола состоит из n островов. Для удобства передвижения между некоторыми островами были построены мосты, но чтобы никакой остров не был перегружен транспортом, к каждому острову ведет не более двух мостов. По мосту можно проезжать в обоих направлениях. Для получения средств на поддержание мостов и дорог правительство Исолы установила плату за проезд по мосту в размере одной условной единицы.
До недавнего времени в Исоле не было автобусного сообщения. В срочном порядке была основана первая автобусная компания «Коррейра», и решено проложить по автобусному маршруту между каждой парой островов. Поскольку между некоторыми островами не существует пути по мостам, между такими островами решено маршрут не создавать.
Было решено, что каждому маршруту будет совершаться два рейса в сутки: сначала в одном направлении, а затем в обратном. Естественно автобусы всегда движутся по самому дешевому маршруту. В «Коррейре» очень интересуются, сколько условных единиц в день будет уходить на оплату проездов автобусов по мостам. Поскольку программистов в небольшом государстве Исолы нет, компания просит Вас решить эту задачу.
В первой строке два целых числа n и m ( 1 ≤ n ≤ 100000 ; 0 ≤ m ≤ n ) — количество островов и мостов Исолы. Далее следует m строк, описывающих мосты Исолы. В каждой строке содержится два целых числа x и y ( 1 ≤ x , y ≤ n ; x ≠ y ) — номера островов, соединенных мостом. Гарантируется что к каждому острову ведет не более двух мостов.
В выходной файл выведите единственное целое число — количество условных единиц, необходимых для работы автобусного сообщения.
В первом примере не все острова соединены между собой. От первого острова до второго можно добраться по одному мосту, от первого до третьего — один мост, от второго до третьего — один. До четвертого или пятого от первого, второго или третьего островов добраться по мостам нельзя. От четвертого до пятого — один мост. Итого 2(1 + 1 + 1 + 1) = 8 условных единиц.
5 4 1 2 1 3 2 3 5 4
8
5 4 5 4 4 3 3 2 2 1
40
Две популярные футбольные команды A и Б решили выявить сильнейшего между собой. Для этого они решили провести двухматчевое противостояние — сначала сыграть матч на поле А, затем на поле Б.
Противостояние выигрывает та команда, которая в сумме забьет больше голов, чем соперник. Если же команды забили одинаковое число мячей в ворота соперника, то победителем признается команда, забившая большее число голов в гостях (на стадионе соперника). Если же и эти величины совпадают, то команды исполняют серию пенальти.
Второй матч противостояния на поле Б на радио «Слушаем внимательно» комментировал ведущий Вася. Во время трансляции его слушатели регулярно интересовались не только текущим результатом матча, который Вася зачитывал с табло, но и возможностью такого исхода встречи, что будет исполнена серия пенальти (как самое захватывающее футбольное зрелище).
Математические способности Васи оставляли желать лучшего, и он попросил Вас написать программу, которая, зная результат первого матча и текущий счет на табло во время второго матча, поможет определить, смогут ли зрители наблюдать серию пенальти.
Первая строка входного файла содержит результат матча А — Б (на поле команды А) в формате « a : b », где a — число мячей, забитых хозяевами поля, а b , соответственно, гостями ( 0 ≤ a , b < 10 ). Вторая строка в том же формате содержит текущий счет на табло в матче Б — А.
В выходной файл выведите слово « YES », если команды могут закончить встречу со счетом, после которого результат противостояния определиться в серии пенальти, иначе — выведите слово « NO ».
2:1 0:0
YES
2:1 0:2
NO