Алгоритмы

2 310 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: ✓ успешные, ✗ неуспешные.
Moocast#90367
\(N\) (\(1 \leq N \leq 200\)) коров Фермера Джона хотят организовать безопасную сеть передачи сообщений.

Каждая корова получает "воки-токи". Каждый "воки-токи" имеет ограниченный радиус передачи: "воки-токи" с мощностью \(P\) может передавать сигнал на расстояние не более \(P\). Заметим, что "воки-токи" однонаправленный: чтобы получить сигнал от другого "воки-токи", нужно чтобы он имел соотвествующую мощность.К счастью, коровы могут передавать по эстафете сообщения другу другу (в том числе и чужие) и поэтому нет необходимости для каждой коровы быть способной непосредственно передать сообщение каждой другой.

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

ФОРМАТ ВВОДА (файл moocast.in):

Первая строка ввода содержит \(N\).

Каждая из следующих \(N\) строк содержат \(x\) и \(y\) координаты одной коровы ( целые числа в диапазоне \(0 \ldots 25,000\)) за которыми следует \(p\), мощность "воки-токи" этой коровы.

ФОРМАТ ВЫВОДА (файл moocast.out):

Напишите одну строку - максимальное количество коров, которым можно передать информацию от одной коровы.

Каждый год, Фермер Джон привозит \(N\) своих коров соревноваться на ярмарку. Его главный соперник Фермер Пауль привозит своих \(M\) коров (\(1 \leq N \leq 1000, 1 \leq M \leq 1000\)).

Каждая из этих \(N + M\) коров получает индивидуальную оценку. Однако в текущем году финальное соревнование будет ограничено командой из \(K\) коров (\(1 \leq K \leq 10\)). Поэтому ФД и ФП отбирают по \(K\) коров. Затем они разбиваются на пары: лучшая корова ФД становится в пару с лучшей коровой ФП, вторая корова ФД, становится в пару со второй коровой ФП и т.д. ФД выиграет, если в каждой из этих пар его корова будет иметь более высокую оценку.

Помогите ФД посчитать количество различных способов которыми ФД и ФП могут отобрать своих коров так, чтобы ФД выиграл в соревновании. Точнее, каждая считается каждая различная пара (\(K\) коров от ФД, и \(K\) коров от ФП). Выведите ответ по модулю 1,000,000,009.

ФОРМАТ ВВОДА (файл team.in):

Первая строка ввода содержит \(N\), \(M\), \(K\). Значение \(K\) будет не более чем \(N\) и \(M\).

Следующая строка содержит оценки \(N\) коров ФД.

Следующая строка содержит оценки \(M\) коров ФП.

ФОРМАТ ВЫВОДА (файл team.out):

Выведите количеаство способов, которыми ФД и ФП могут отобрать свои команды, чтобы победил ФД. Выводите это число по модулю 1,000,000,009.

Фермер Джон планирует планирует с выгодой продать часть своей земли. В его собственности находятся \(n\) (\(3 \leq N \leq 300\)) деревьев, каждое описывается точкой на плоскости, никакие три из которых не коллинеарны. ФД хочет продать треугольный лот земли, определённый деревьями в своих вершинах. Имеется \(L = \binom{N}{3}\) таких лотов, которые он может рассмотреть, перебирая все возможные тройки своих деревьев.

Треугольный лот имеет стоимость \(v\) если он содержит ровно \(v\) деревьев, внутри себя (деревья в вершинах не считаются, а на границах их и быть не может, поскольку по условиям все тройки деревьев не коллинеарны). Для каждого $v в интервале 0 \ldots N-3\(, определите сколько из его \)L$ потенциальных лотов имеют ценность \(v\).

ФОРМАТ ВВОДА (файл triangles.in):

Первая строка ввода содержит \(N\).

Каждая из последующих \(N\) строк содержит \(x\) и \(y\) координаты одного дерева - целые числа в интервале \(0 \ldots 1,000,000\).

ФОРМАТ ВЫВОДА (файл triangles.out):

Выведите \(N-2\) строки, где строка \(i\) содержит количество лотов с ценностью \(i-1\).

Коровы Фермера Джона любят производить лазерные шоу.

Для своего последнего шоу, они купили огромный мощный лазер - такой большой, что они не смогли перместить его легко из того места, где он был приобретен. Он хотят послать свет от лазера в амбар ФД. И лазер, и амбра могут рассматриваться как точки на плоскости - карте фермы ФД. В панах коров направить лазер так, чтобы он послал лч света горизонтально или вертикально (то есть вдоль оси x или вдоль оси y). Затем они планируют ментяь направление луча посредством зеркал, чтобы направить луч в амбар.

На этой ферме есть \(N\) (\(1 \leq N \leq 100,000\)) точек изгороди, расположенных в различных точках на плоскости, (и отличающихся также от точек лазера и амбара), на которых могут крепится зеркала. Коровы могут выбрать не крепить зеркало к некоторым точкам, тогда луч просто проходит через эту точку без поворотов (не меняя направление). Если коровы монтируют зеркало в точке изгороди, они выравнивают его диагонально так / или так \, что соответсвенно пернаправляет горизонтальный в вертикальный и наоборот.

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

ФОРМАТ ВВОДА (файл lasers.in):

Первая строка ввода содержит 5 целых чисел, разделённых одиночными пробелами. \(N, x_L, y_L, x_B, y_B\), где \((x_L, y_L)\) - это размещение лазера, \((x_B, y_B)\) - размещение амбара. Все координаты между \(0\) и \(1,000,000,000\).

Каждая из следующих \(N\) строк содержит \(x\) и \(y\) - координаты точек изгороди - целые числа в интервале \(0 \ldots 1,000,000,000\).

ФОРМАТ ВЫВОДА (файл lasers.out):

Выведите минимальное колчиество зеркал, которое необходимо чтобы перенаправить лазер в амбар, или -1, если это невозможно сделать.

Каждый день Фермер Джон прогуливается по своему пастбищу проверить состояние всех своих коров. У него на ферме есть коровы двух пород: Holsteins и Guernseys. \(H\) коров породы Holsteins последовательно пронумерованы \(1 \ldots H\), и \(G\) Guernseys последовательно пронумерованы \(1 \ldots G\) ($1 \leq H \leq 1000, 1 \leq G \leq 1000$). Каждая из его коров расположена в точке на плоскости (точки не обязательно различны).

ФД начинает свою прогулку в позиции Holstein 1 а заканчивает в позиции Holstein \(H\). Он хочет посетить каждую корову и для удобства ведёт чек-лист посещения коров. Он хочет посещать Holsteins и Guernseys в порядке их нумерации. В последовательности всех \(H+G\) коров, в порядке их посещения, коровы породы Holsteins \(1 \ldots H\) появятся как подпоследовательности (не обязательно непрерывные), аналогично и с коровами породы Guernseys. Другими словами, последовательность всех \(H+G\) коров будет сформирована перемешиванием списка Holsteins пронумерованных \(1 \ldots H\) и списка Guernseys, пронумерованных \(1 \ldots G\).

Когда ФД двигается от одной коровы к другой, преодолевая расстояние \(D\), он тратит \(D^2\) энергии. Помогите ему определить, минимальное количество энергии, требуемое чтобы посетить всех его коров в соответствии с правилами, описанными выше.

ФОРМАТ ВВОДА (файл checklist.in):

Первая строка ввода содержит \(H\) и \(G\), разделённые одиночным пробелом.

Последующие \(H\) строк содержат \(x\) и \(y\) координаты \(H\) Holsteins, и следующие \(G\) строк содержат координаты Guernseys. Каждая координата это целое число в интервале \(0 \ldots 1000\).

ФОРМАТ ВЫВОДА (файл checklist.out):

Выведите одну строку, содержащую минимальную энергию, требуемую для посещения ФД всех его коров.

Фермер Джон недавно построил огромный амбар, состоящий из \(N \times N\) решётки комнат, (\(2 \leq N \leq 100\)), пронумерованных от \((1,1)\) до \((N,N)\). Беси, будучи коровой которая боится темноты, хочет включить свет в как можно большем количестве комнат.

Беси начинает в комнате \((1,1)\), - единственной комнате, в которой изначально был включён свет. В некоторых комнатах она найдёт переключатели, которые могут переключать свет в других комнатах. Например, в комнате \((1,1)\) может находиться переключатель света в комнате \((1,2)\). Беси может ходить только в те комнаты, где уже горит свет. И также она может переходить из комнаты \((x,y)\) только в четыре соседние комнаты \((x-1,y)\), \((x+1,y)\), \((x,y-1)\), \((x,y+1)\) (или, возможно, в меньшее количество комнат, если она находится на границе решётки.

Определите максимальное количество комнат, в которые Беси может включить свет.

ФОРМАТ ВВОДА (файл lightson.in):

Первая строка ввода содержит целые числа \(N\) и \(M\) ($1 \leq M \leq 20,000$).

Каждая из следующих \(M\) строк описывает один переключатель четырьмя целыми числами \(x\), \(y\), \(a\), \(b\), означающими, что в комнате \((x,y)\) можно переключить свет в комнате \((a,b)\). Несколько переключателей могут находится в любой комнате и несколько переключателей могут переключать свет в любой комнате.

ФОРМАТ ВЫВОДА (файл lightson.out):

Одна строка, задающая максимальное количество комнат, в которых Беси может включить свет.

ПРИМЕР ВЫВОДА

5

Здесь Беси может использовать переключатель в комнате \((1,1)\), чтобы включить свет в комнатах \((1,2)\) и \((1,3)\). Затем она может перейти в комнату \((1,3)\) и включить свет в комнате \((2,1)\), где она может включить свет в комнате \((2,2)\). Переключатель в комнате \((2,3)\) недоступен для неё, поскольку он находится в комнате, где свет не включён. Поэтому Беси может посетить не более 5 комнат.

Авторы: Austin Bannister и Brian Dean

Фермер Джон недавно построил огромный амбар, состоящий из \(N \times N\) решётки комнат, (\(2 \leq N \leq 100\)), пронумерованных от \((1,1)\) до \((N,N)\). Беси, будучи коровой которая боится темноты, хочет включить свет в как можно большем количестве комнат.

Беси начинает в комнате \((1,1)\), - единственной комнате, в которой изначально был включён свет. В некоторых комнатах она найдёт переключатели, которые могут переключать свет в других комнатах. Например, в комнате \((1,1)\) может находиться переключатель света в комнате \((1,2)\). Беси может ходить только в те комнаты, где уже горит свет. И также она может переходить из комнаты \((x,y)\) только в четыре соседние комнаты \((x-1,y)\), \((x+1,y)\), \((x,y-1)\), \((x,y+1)\) (или, возможно, в меньшее количество комнат, если она находится на границе решётки.

Определите максимальное количество комнат, в которые Беси может включить свет.

ФОРМАТ ВВОДА (файл lightson.in):

Первая строка ввода содержит целые числа \(N\) и \(M\) ($1 \leq M \leq 20,000$).

Каждая из следующих \(M\) строк описывает один переключатель четырьмя целыми числами \(x\), \(y\), \(a\), \(b\), означающими, что в комнате \((x,y)\) можно переключить свет в комнате \((a,b)\). Несколько переключателей могут находится в любой комнате и несколько переключателей могут переключать свет в любой комнате.

ФОРМАТ ВЫВОДА (файл lightson.out):

Одна строка, задающая максимальное количество комнат, в которых Беси может включить свет.

ПРИМЕР ВЫВОДА

5

Здесь Беси может использовать переключатель в комнате \((1,1)\), чтобы включить свет в комнатах \((1,2)\) и \((1,3)\). Затем она может перейти в комнату \((1,3)\) и включить свет в комнате \((2,1)\), где она может включить свет в комнате \((2,2)\). Переключатель в комнате \((2,3)\) недоступен для неё, поскольку он находится в комнате, где свет не включён. Поэтому Беси может посетить не более 5 комнат.

Авторы: Austin Bannister и Brian Dean

Беси, которая всегда создаёт проблемы, украла трактор Фермера Джона и помчалась вниз по дороге!

Дорога имеет длину ровно 100 миль и Беси едет по ней, пока её не остановит офицер полиции и не вручит ей квитанцию о превышении скорости.

Дорога поделена на \(N\) участков, каждый описывается положительной длиной в милях, а также целым числом - пределом скорости на этом участке, в диапазоне \(1 \ldots 100\) миль в час. Поскольку длина дороги 100 миль, суммарная длина всех \(N\) участков равна 100. Например, дорога может начаться участком в 45 миль со скоростным пределом 70 миль в час, и затем будет участок в 55 миль, со скоростным пределом 60 миль в час.

Движение Беси тоже может быть описано серией участков - \(M\) штук. На каждом участке она проезжает определённое количество миль с определённой целочисленной скоростью. Например, она может ехать 50 миль со скоростью 65, а затем 50 миль со скоростью 55. Суммарная длина всех этих \(M\) участков также равна 100. Трактор ФД может двигаться со скоростью не более 100 миль в час.

По заданной выше информации, определите максимальное превышение скорости, которое допустила Беси во время путешествия.

Формат ввода (файл speeding.in):

Первая строка ввода содержит \(N\) и \(M\), разделённые одним пробелом.

Каждая из следующих \(N\) строк содержит два целых числа, описывающих участок дороги: задавая его длину и предел скорости

Каждая из следующих \(M\) строк содержит два целых числа, описывающих участок путешествия Беси: задавая его длину и скорость, на которой двигалась Беси.

Формат вывода (файл speeding.out):

Выведите одну строку, содержащую максимальное превышение предела скорости, которое допустила Беси. Если она никогда не превысила скорость, выведите 0.

Max Flow#90350
Фермер Джон установил новую систему из \(N-1\) труб чтобы транспортировать молоко между \(N\) стойлами в его амбаре (\(2 \leq N \leq 50,000\)), последовательно пронумерованными \(1 \ldots N\). Каждая труба соединяет пару стойл, и все стойла связаны друг с другом посредством последовательности труб.

ФД проталкивает молоко между K парами стойл (\(1 \leq K \leq 100,000\)). Для \(i\)-ой такой пары вам сообщают \(s_i\) и \(t_i\), начальную и конечную точки пути между которыми молоко проталкивается на единичной скорости. ФД опасается, что некоторые стойла могут переполниться молоком, проталкиваемым через них. Помогите ФД определить максимальное количество молока, которое можно протолкнуть через любое стойло. Если молоко проталкивается вдоль пути от \(s_i\) до \(t_i\), тогда считается, что оно проталкивается не только через конечные точки(стойла) \(s_i\) и \(t_i\), но также и через каждое стойло на пути между ними.

ФОРМАТ ВВОДА (файл maxflow.in):

Первая строка ввода содержит \(N\) и \(K\).

Каждая из следующих \(N-1\) строк содержит два целых числа \(x\) и \(y\) (\(x \ne y\)) описывающих трубу между стойлами \(x\) и \(y\).

Каждая из следующих \(K\) строк содержит два целых числа \(s\) и \(t\), описывающих конечные точки-стойла пути, по которому проталкивается молоко.

ФОРМАТ ВЫВОДА (файл maxflow.out):

Одно целое число, указывающее максимальное количество молока, проталкиваемое через любое стойло в амбаре.

Беси и Эльза играют в простую карточную игру. Берётся колода из \(2N\) карт, последовательно пронумерованных \(1 \ldots 2N\), и делят их поровну - \(N\) карт Беси и \(N\) карт Эльзе. Затем они играют \(N\) раундов, в каждом из которых Беси и Эльза выкладывают по одной карте. В первых \(N/2\) раундах очко зарабатывает тот игрок, у которого карта больше. А в последних \(N/2\) раундах очко выигрывает тот игрок, у которого карта меньше.

По известному порядку выкладывания карт Эльзой определите максимальное количество очков, которое может заработать Беси.

ФОРМАТ ВВОДА (файл cardgame.in):

Первая строка ввода содержит значение N (\(2 \leq N \leq 50,000\); \(N\) чётное).

Следующие N строк содержат карты, которыми будет играть Эльза в каждом из последующих раундов игры. Заметим, что по этой информации, легко определить карты Беси.

ФОРМАТ ВЫВОДА (файл cardgame.out):

Выведите одну строку дающую максимальное количество очков, которое может заработать Беси.

Беси забралась на кухню Фермера Джона и обнаружила там кучу лимонов и апельсинов там (неограниченное количество и того и другого) и хочет съесть как можно больше .

Максимум сытости Беси равен \(T\) (\(1 \le T \le 5,000,000\)). Поедание апельсина увеличивает её сытость на \(A\), а поедание лимона увеличивает её сытость на \(B\) (\(1 \le A, B \le T\)). Дополнительно, если она хочет, Беси может попить воды не более одного раза, что мгновенно уменьшит её сытость вдвое (с округлением вниз).

Помогите определить Беси максимальную сытость, которую она сможет достичь.

ФОРМАТ ВВОДА(файл feast.in):

Первая и единственная строка содержит три целых числа \(T\), \(A\), and \(B\).

Формат выходных данных:

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

Фермер Джон, известный качеством молока, производимого на его ферме, проводит молочную вечеринку для \(N\) своих лучших друзей (\(1 \leq N \leq 50\)). Из \(M\) сортов молока, подготовленных к вечеринке , (\(1 \leq M \leq 50\)) ровно один испортился, но ФД не знает какой. Тому, кто его выпьет, станет плохо.

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

Формат входных данных:

Первая строка ввода содержит числа \(N\), \(M\), \(D\), \(S\).

Каждая из следующих \(D\) строк (\(1 \leq D \leq 1000\)) содержит три целых числа \(p, m, t\), указывающих, что персона \(p\) выпила сорт молока \(m\) в момент времени \(t\). Значение \(p\) находится в интервале \(1 \ldots N\), \(m\) в интервале \(1 \ldots M\), и \(t\) в интервале \(1 \ldots 100\). Кажды человек может пить один и тот же сорт молока несколько раз, и может пить несколько сортов молока в один и тот же момент времени.

Каждая из следующих \(S\) строк (\(1 \leq S \leq N\)) содержит два целых числа \(p, t\), указывающих, что персона \(p\) заболела в момент времени \(t\). Значение \(p\) в интервале \(1 \ldots N\), а значение \(t\) в интервале $1 \ldots 100$. Каждый человек заболеет не более одного раза, как следствие того, что он выпил плохое молоко в какой-то строго более ранний момент времени.

Формат вывода (файл badmilk.out):

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

После столь обильного поедания фруктов на кухне Фермера Джона, Беси посетили странные мечты. Она попала в лабиринт в форме решётки клеток \(N \times M\) (\(1 \le N, M \le 1,000\)). Она начинает в левой верхней клетке и хочет попасть в правую нижнюю. Когда она стоит в клетке, он может шагнуть в любом из четырёх направлений (вверх, вниз, вправо, вверх).

Однако подождите! Каждая клетка имеет свой цвет, и каждый цвет имеет различные свойства:

  • Если клетка red (красная), то в неё ходить нельзя
  • Если клетка pink (розовая), то в неё можно ходить
  • Если клетка orange (оранжевая), то в неё можно ходить, но Беси станет пахнуть как апельсин.
  • Если клетка blue (синяя) , то она содержит пираний, которые позволят Беси пройти только если она пахнет как апельсин.
  • Если клетка purple (пурпурная), то Беси проскальзывает в следующую клетку в этом направлении (если только в следующую клетку можно заходить). Если следующая клетка также пурпурная, Беси продолжает скользить, пока не попадёт в не пурпурную клетку или остановится перед непроходимой клеткой. Скольжение одной клетки засчитывается как один шаг. Пурпурные клетки также удаляют запах.

(Пример ниже подробнее поясняет "пурпурные" клетки)

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

ФОРМАТ ВВОДА (файл dream.in):

Первая строка ввода содержит два целых числа \(N\) и \(M\), представляющие количество строк и столбцов лабиринта.

Каждая из следующих \(N\) строк имеет по \(M\) целых чисел, представляющих лабиринт:

  • Целое число '0' это красная клетка
  • Целое число '1' это розовая клетка
  • Целое число '2' это оранжевая клетка
  • Целое число '3' это синяя клетка
  • Целое число '4' это пурпурная клетка

Левая-верхняя и правая-нижняя клетки всегда будут '1'.

ФОРМАТ ВЫВОДА (файл dream.out):

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

Беси и Эльза играют в простую карточную игру. Берётся колода из \(2N\) карт, последовательно пронумерованных \(1 \ldots 2N\), и делят их поровну - \(N\) карт Беси и \(N\) карт Эльзе. Затем они играют \(N\) раундов, в каждом из которых Беси и Эльза выкладывают по одной карте. В первых \(N/2\) раундах очко зарабатывает тот игрок, у которого карта больше. А в последних \(N/2\) раундах очко выигрывает тот игрок, у которого карта меньше.

По известному порядку выкладывания карт Эльзой определите максимальное количество очков, которое может заработать Беси.

ФОРМАТ ВВОДА (файл cardgame.in):

Первая строка ввода содержит значение N (\(2 \leq N \leq 50,000\); \(N\) чётное).

Следующие N строк содержат карты, которыми будет играть Эльза в каждом из последующих раундов игры. Заметим, что по этой информации, легко определить карты Беси.

ФОРМАТ ВЫВОДА (файл cardgame.out):

Выведите одну строку дающую максимальное количество очков, которое может заработать Беси.

Беси забралась на кухню Фермера Джона и обнаружила там кучу лимонов и апельсинов там (неограниченное количество и того и другого) и хочет съесть как можно больше .

Максимум сытости Беси равен \(T\) (\(1 \le T \le 5,000,000\)). Поедание апельсина увеличивает её сытость на \(A\), а поедание лимона увеличивает её сытость на \(B\) (\(1 \le A, B \le T\)). Дополнительно, если она хочет, Беси может попить воды не более одного раза, что мгновенно уменьшит её сытость вдвое (с округлением вниз).

Помогите определить Беси максимальную сытость, которую она сможет достичь.

ФОРМАТ ВВОДА(файл feast.in):

Первая и единственная строка содержит три целых числа \(T\), \(A\), and \(B\).

Формат выходных данных:

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

После столь обильного поедания фруктов на кухне Фермера Джона, Беси посетили странные мечты. Она попала в лабиринт в форме решётки клеток \(N \times M\) (\(1 \le N, M \le 1,000\)). Она начинает в левой верхней клетке и хочет попасть в правую нижнюю. Когда она стоит в клетке, он может шагнуть в любом из четырёх направлений (вверх, вниз, вправо, вверх).

Однако подождите! Каждая клетка имеет свой цвет, и каждый цвет имеет различные свойства:

  • Если клетка red (красная), то в неё ходить нельзя
  • Если клетка pink (розовая), то в неё можно ходить
  • Если клетка orange (оранжевая), то в неё можно ходить, но Беси станет пахнуть как апельсин.
  • Если клетка blue (синяя) , то она содержит пираний, которые позволят Беси пройти только если она пахнет как апельсин.
  • Если клетка purple (пурпурная), то Беси проскальзывает в следующую клетку в этом направлении (если только в следующую клетку можно заходить). Если следующая клетка также пурпурная, Беси продолжает скользить, пока не попадёт в не пурпурную клетку или остановится перед непроходимой клеткой. Скольжение одной клетки засчитывается как один шаг. Пурпурные клетки также удаляют запах.

(Пример ниже подробнее поясняет "пурпурные" клетки)

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

ФОРМАТ ВВОДА (файл dream.in):

Первая строка ввода содержит два целых числа \(N\) и \(M\), представляющие количество строк и столбцов лабиринта.

Каждая из следующих \(N\) строк имеет по \(M\) целых чисел, представляющих лабиринт:

  • Целое число '0' это красная клетка
  • Целое число '1' это розовая клетка
  • Целое число '2' это оранжевая клетка
  • Целое число '3' это синяя клетка
  • Целое число '4' это пурпурная клетка

Левая-верхняя и правая-нижняя клетки всегда будут '1'.

ФОРМАТ ВЫВОДА (файл dream.out):

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

Беси, которая всегда создаёт проблемы, украла трактор Фермера Джона и помчалась вниз по дороге!

Дорога имеет длину ровно 100 миль и Беси едет по ней, пока её не остановит офицер полиции и не вручит ей квитанцию о превышении скорости.

Дорога поделена на \(N\) участков, каждый описывается положительной длиной в милях, а также целым числом - пределом скорости на этом участке, в диапазоне \(1 \ldots 100\) миль в час. Поскольку длина дороги 100 миль, суммарная длина всех \(N\) участков равна 100. Например, дорога может начаться участком в 45 миль со скоростным пределом 70 миль в час, и затем будет участок в 55 миль, со скоростным пределом 60 миль в час.

Движение Беси тоже может быть описано серией участков - \(M\) штук. На каждом участке она проезжает определённое количество миль с определённой целочисленной скоростью. Например, она может ехать 50 миль со скоростью 65, а затем 50 миль со скоростью 55. Суммарная длина всех этих \(M\) участков также равна 100. Трактор ФД может двигаться со скоростью не более 100 миль в час.

По заданной выше информации, определите максимальное превышение скорости, которое допустила Беси во время путешествия.

Формат ввода (файл speeding.in):

Первая строка ввода содержит \(N\) и \(M\), разделённые одним пробелом.

Каждая из следующих \(N\) строк содержит два целых числа, описывающих участок дороги: задавая его длину и предел скорости

Каждая из следующих \(M\) строк содержит два целых числа, описывающих участок путешествия Беси: задавая его длину и скорость, на которой двигалась Беси.

Формат вывода (файл speeding.out):

Выведите одну строку, содержащую максимальное превышение предела скорости, которое допустила Беси. Если она никогда не превысила скорость, выведите 0.

Фермер Джон, известный качеством молока, производимого на его ферме, проводит молочную вечеринку для \(N\) своих лучших друзей (\(1 \leq N \leq 50\)). Из \(M\) сортов молока, подготовленных к вечеринке , (\(1 \leq M \leq 50\)) ровно один испортился, но ФД не знает какой. Тому, кто его выпьет, станет плохо.

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

Формат входных данных:

Первая строка ввода содержит числа \(N\), \(M\), \(D\), \(S\).

Каждая из следующих \(D\) строк (\(1 \leq D \leq 1000\)) содержит три целых числа \(p, m, t\), указывающих, что персона \(p\) выпила сорт молока \(m\) в момент времени \(t\). Значение \(p\) находится в интервале \(1 \ldots N\), \(m\) в интервале \(1 \ldots M\), и \(t\) в интервале \(1 \ldots 100\). Кажды человек может пить один и тот же сорт молока несколько раз, и может пить несколько сортов молока в один и тот же момент времени.

Каждая из следующих \(S\) строк (\(1 \leq S \leq N\)) содержит два целых числа \(p, t\), указывающих, что персона \(p\) заболела в момент времени \(t\). Значение \(p\) в интервале \(1 \ldots N\), а значение \(t\) в интервале $1 \ldots 100$. Каждый человек заболеет не более одного раза, как следствие того, что он выпил плохое молоко в какой-то строго более ранний момент времени.

Формат вывода (файл badmilk.out):

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

Piggyback#90334

Беси и её сестра Эльза пасутся на различных полях в течение дня, а вечером обе хотят вернуться в амбар отдыхать. Будучи умными коровами, они хотят составить план, чтобы минимизировать суммарное количество энергии, которое они обе потратят на это путешествие.
Беси тратит B единиц энергии, когда она переходит с одного поля на соседнее поле, а Эльза тратит E единиц энергии при переходе на соседнее поле. Однако, если Беси и Эльза оказались на одном поле, то Беси может нести Эльзу на своих плечах, и тогда обе могут переместиться на соседнее поле, потратив только P единиц энергии, (где P может быть существенно меньше, чем B+E - количество энергии, которое затрачивается двумя коровами вместе, если они перемещаются на соседнее поле по отдельности). Если P очень маленькое, то коровам выгоднее перемещаться вместе, а если P очень большое - то по отдельности.
По заданным B, E, P и расположению полей на ферме, вычислите минимальное количество энергии, которое потребуется Беси и Эльзе, чтобы добраться до амбара.
Формат входных данных
Первая строка ввода содержит положительные числа B, E, P, N, M. Все они не превышают 40,000. B, E, P описаны выше. N - количество полей на ферме, пронумерованных от 1 до N, N>=3. M - количество дорожек между полями. Беси и Эльза начинают в полях 1 и 2 соответственно. Амбар расположен в поле N.
Каждая из следующих M строк ввода описывает дорожку между парой различных полей, указанную номерами этих полей. Дорожки двунаправленные. Всегда можно добраться от поля 1 до поля N и от поля 2 до поля N посредством некоторого количества дорожек.

Формат выходных данных
Одно целое число, указывающее минимальное количество энергии, которое суммарно потратят Беси и Эльза, чтобы добраться до амбара. В примере, приведенном выше, Беси перемещается от 1 к 4, Эльза перемещается от 2 к 3, затем к 4. Потом они перемещаются вместе от 4 к 7, затем к 8.

Cow Jog#90332

N (1 <= N <= 100,000) коров бегут по одной бесконечно длинной дорожке.
Все коровы начинают в различных позициях и некоторые коровы бегут с
разной скоростью.

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

Забег длится T минут (1 <= T <= 1,000,000,000).
Определите, сколько групп образуется к концу забега.
Две коровы рассматриваются принадлежащими к одной группе, если
они окажутся в одной позиции в конце T минут.

Формат входных данных

Первая строка ввода содержит два целых числа N и T.

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

Формат выходных данных

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

Поделиться
Класснуть