Алгоритмы(1657 задач)
Структуры данных(279 задач)
Интерактивные задачи(17 задач)
Другое(54 задач)
Флатландский валун имеет форму многоугольника (не обязатеьно выпуклого). Для простоты будем рассматривать только многоугольники, у которых любые 3 вершины не лежат на одной прямой. Такие валуны получаются из разных видов камней, необязательно однородной плотности. Тем не менее, вы знаете расположение его центра тяжести.
Сейчас мы положили на горизонтальную прямую две вершины камня (назовём их базовыми), и отпустили. В случае, если центр тяжести находится над отрезком, соединяющим базовые вершины, или над базовыми вершинами, то валун будет стоять. Иначе сила тяжести заставит его катится в определённом направлении.
Валун будет перемещаться на одной из базовых вершин, пока он не коснётся горизонтальной прямой другой вершиной. Будем называть этот процесс поворотом. Теперь одна из базовых вершин поменялась, и возможно центр тяжести теперь находится над отрезком, соединяющим базовые вершины. В этом случае валун остановится.
Иначе он продолжит вращаться, пока в конце концов не остановится, так как во Флатляндии вечный двигатель невозможен. Движение валуна происходит в вязкой среде, то есть инерция отсутствует, и валун остановится, как только сила тяжести позволит ему. Зная координаты вершин валуна и его центра тяжести, вычислите количество поворотов, которые совершит валун перед остановкой.
Входной файл содержит целое число N (3 ≤ N ≤ 100) . В следующих N + 1 строках находятся пары целых чисел. Первые N пар описывают координаты вершин валуна, перечисленные в порядке обхода по или против часовой стрелки (линия, на которой стоит валун, описывается уравнением y = 0 ; гравитация действует параллельно Oy в стороны отрицательных y ). Последняя пара чисел описывает центр тяжести. Все координаты — целые числа, не превосходящие по абсолютному значению 30 000 , все y -координаты — неотрицательные. Никакие 3 вершины не лежат на одной прямой. Центр тяжести находится внутри валуна.
Выведите одно число — количество поворотов
Ассоциация Великих Машин (АВМ) в последнее время совершила прорыв в археологических раскопках. Они нашли древний артефакт расписанный кодами , безусловно, созданный какой-то великой машиной много лет назад развитой ныне исчезнувшей цивилизацией. Исследователи предполагают, что эти коды скрывают знания этой цивилизации. Однако, прогресс в расшифровке кода остановился, потому что некоторые слова были сильно повреждены, а некоторые слова были непригодны для чтения.
Исследователи выяснили, что Великая Машина использовала слова только определённой структуры. Каждое слово состоит из цифр от 0 до 7 (включительно) и построено из слова "s" одним или несколькими из следующих правил:
s → 0
s → 1s
s → 2ss
s → 3sss
s → 4ssss
s → 5sssss
s → 6ssssss
s → 7sssssss
Каждое из этих правил может быть применено несколько раз, если это необходимо, и они могут быть использованы в любом порядке. Использование правила заменяет одно выбранное "s" на правую часть определённого превращения. Например, слово "2s0" может трансформироваться в "22ss0" по третьему правилу. Пожалуйста, помогите исследователям реконструировать эти слова и расшифровать все сообщения древней цивилизации. Вам предоставлен остаток правильного слова только из цифр от 0 до 7. Исследователи уверенны, что небольшая часть букв была утеряна, поэтому они хотят определить правильное слово минимальной длины, которое будет содержать данное слово как подпоследовательность.
Входной файл содержит одну непустую строку, состоящей из цифр от 0 до 7. Общее количество цифр будет меньше или равно 30 000.
Вывести слово минимальной длины которое содержит в себе как подпоследовательность вводимые слово. В случае существования нескольких строк минимальной длины вывести любую.
00
200
22
22000
3002010
3002010
Мальчик Кирилл написал однажды на листе бумаги строчку, состоящую из больших и маленьких латинских букв, а после этого ушел играть в футбол. Когда он вернулся, то обнаружил, что его друг Дима написал под его строкой еще одну строчку такой же длины. Дима утверждает, что свою строчку он получил циклическим сдвигом строки Кирилла направо на несколько шагов(циклический сдвиг строки abcde на 2 позиции направо даст строку deabc). Однако Дима известен тем, что может случайно ошибиться в большом количестве вычислений, поэтому Кирилл в растерянности – верить ли Диме? Помогите ему!
По данным строкам выведите минимальный возможный размер сдвига или –1, если Дима ошибся.
Первые две строки входного файла содержат строки Кирилла и Димы соответственно. Длины строк одинаковы, не превышают 100000 и не равны 0.
В выходной файл выведите единственное число – ответ на поставленную задачу
a b
-1
zabcd abcdz
4
На одной из планет, под названием TheBestWorld, живут много умных людей. Эта планета также известна своими двумя конкурирующими школами супергероев. Каждый малыш, живущий на этой планете, мечтает стать супергероем, но не у всех это получается.
Ученики разных школ всегда недолюбливали друг друга. И иногда дело даже доходило до того, как супергерои начали применять свои геройские силы для выяснения отношений.
В этом мире случилось несчастье. На TheBestWorld нападают темные силы. У генерала главнокомандующего армией супергероев есть в распоряжении n + m супергероев, из них n — выпускники первой школы, m — второй. Главнокомандующий подсчитал количество супергероев k , которые смогут спасти лучшее, что у них есть, — планету.
На первый взгляд кажется, что главнокомандующему не понадобится помощь в выборе супергероев, но он вспомнил, что супергерои из разных школ раздражают друг друга. Но это происходит только тогда, когда два супергероя из разных школ находятся на расстоянии меньше d . Если такую пару героев позвать спасать мир, они не смогут продуктивно делать свою работу.
Проблема в том, что генерал забыл искомое d . Вам известны координаты каждого из супергероев. Генерал просит вас вычислить максимальное d , при котором он все еще может спасти мир. И выдать список супергероев, которые спасут мир при данном d .
В первой строке входного файла заданы три числа n , m и k ( 1 ≤ k , n , m ≤ n + m ≤ 200 ) — количество супергероев, выпустившихся из первой и второй школы, и количество супергероев, которое необходимо, чтобы спасти мир, соответственно. Следующие n + m строк описывают супергероев: в каждой строке заданы два целых числа — текущие координаты супергероя. Первые n строк содержат информацию о выпускниках первой школы, следующие m — о выпускниках второй школы. Все координаты не превышает по модулю 10000 . Известно, что никакие два супергероя не стоят в одной точке.
В первую строку выходного файла выведите одно вещественное число: максимальное значение d , которое позволяет спасти мир, либо -1, если при любом значении d мир можно спасти. Относительная или абсолютная погрешность вашего ответа не должна превышать 10 −6 . В следующих k строках выведите список номеров супергероев по одному числу в строке, которых можно взять при данном d , либо, если спасти мир можно при любом d , выведите список героев, которые позволяет спасти мир вне зависимости от d . Супергерои нумеруются числами от 1 до n + m в том порядке, в котором они идут во входном файле.
2 3 4 1 1 1 2 1 3 1 4 1 5
2.000000000000000000 1 3 4 5
1 1 2 1 1 1 10
9.000000000000000000 1 2
Рассмотрим 3D модель системы координат OXYZ . Ось OX направлена направо, ось OY наверх, ось OZ от нас. В пространстве находятся прямоугольные окна. Плоскость каждого окна параллельна плоскости OXY , т.е. его стороны параллельны осям OX и OY . Все окна находятся на разной глубине (различные координаты z > 0).
Гангстер с ружьем двигается вдоль оси OX ( y = 0, z = 0 ). Он может выстрелить пулей по прямой линии. Его цель одним выстрелом пробить все окна. Просто касания окна по ребру достаточно, чтобы оно разбилось. Ваша задача определить как совершить такой выстрел.
Первая строка содержит одно число n ( 2 ≤ n ≤ 100 ) - число окон в пространстве. Следующие n строк описывают окна. Каждая строка содержит 5 целых чисел x 1 i , y 1 i , x 2 i , y 2 i , z i ( 1 ≤ x 1 i , y 1 i , x 2 i , y 2 i , z i ≤ 1000 ). Здесь ( x 1 i , y 1 i , z i ) - координаты нижнего левого угла, а ( x 2 i , y 2 i , z i ) - координаты верхнего правого угла. Все окна имеют ненулевую площадь. Окна отсортированы по координате z .
Выведите единственное слово "UNSOLVABLE", если гангстер не может достичь своей цели.
Иначе выведите слово "SOLUTION". На следующей строке выведите x координату точки из которой должен выстрелить гангстер. В следующих n строках выведите x , y , z - координаты точек в которых пуля пробьет i -ое окно. Все координаты должны быть выведены с точностью 6 знаков после запятой.
3 1 3 5 5 3 1 2 5 7 5 5 2 7 6 6
SOLUTION -5.0000000000 1.0000000000 3.0000000000 3.0000000000 5.0000000000 5.0000000000 5.0000000000 7.0000000000 6.0000000000 6.0000000000
3 2 1 5 4 1 3 5 6 8 2 4 3 8 6 4
UNSOLVABLE