Алгоритмы(1657 задач)
Структуры данных(279 задач)
Интерактивные задачи(17 задач)
Другое(54 задач)
Окружная олимпиада(18 задач)
Региональный этап(109 задач)
Заключительный этап(97 задач)
В школе решили на один прямоугольный стол поставить два прямоугольных ноутбука. Ноутбуки нужно поставить так, чтобы их стороны были параллельны сторонам стола. Определите, какие размеры должен иметь стол, чтобы оба ноутбука на него поместились, и площадь стола была минимальна.
Вводится четыре натуральных числа, первые два задают размеры одного ноутбука, а следующие два — размеры второго. Числа не превышают 1000.
Выведите два числа — размеры стола. Если возможно несколько ответов, выведите любой из них (но только один).
В примерах указаны всевозможные ответы на поставленную задачу. Ваша программа должна вывести один из них.
10 2 2 10
20 2 2 20 4 10 10 4
5 7 3 2
9 5 5 9
Вася изготовил карточки, написав на них N первых заглавных букв латинского алфавита. Карточки Вася положил в стопку.
Дальше он берет первую сверху карточку и кладет ее в новую стопку. Далее вторую карточку он кладет вниз этой новой стопки, третью — наверх новой стопки, потом четвертую — опять вниз, следующую — наверх и т.д.
После этого оказалось, что карточки лежат строго по алфавиту, если просматривать их сверху вниз.
Напишите программу, которая выведет, в каком порядке карточки лежали в исходной стопке.
Вводится натуральное число \(N\) (\(N\) не превышает 26).
Выведите буквы, написанные на карточках в исходной стопке, если ее просматривать сверху вниз (должны быть выведены заглавные латинские буквы без пробелов между ними).
3
BCA
6
CDBEAF
На клетчатой бумаге Петя нарисовал отрезок из точки с координатами (\(a\),\(b\)) в точку с координатами (\(c\),\(d\)). Через сколько клеток проходит этот отрезок (считается, что отрезок проходит через клетку, если он проходит через ее внутренность, если же он проходит только через вершину или по границе клетки, считается, что он не проходит через клетку).
Вводятся целые числа \(a\), \(b\), \(c\), \(d\). Числа по модулю не превышают \(10^9\).
Выведите одно число — количество клеток, через которые проходит отрезок.
0 0 6 4
8
3 3 -3 3
0
«Нарисуйте» с помощью символов на экране лес. При этом не пользуйтесь командами перемещения курсора по экрану. Ваша программа должна последовательно выводить символы строк (или строки целиком).
Лес — это одна или несколько елочек. Каждая елочка характеризуется количеством треугольников в ней и размером самого маленького треугольника. Елочка состоит из треугольников, у которых вершины находятся строго друг под другом, и каждый следующий треугольник содержит на одну строку больше предыдущего.
Все елочки должны по вертикали начинаться с первой строки. Каждая елочка должна быть расположена как можно левее, при этом елочки не должны соприкасаться (т.е. возле символов елочки справа, слева, снизу, сверху, а также по диагонали не должно быть символов, изображающих другую елочку) и не должен нарушаться порядок следования елочек.
Елочки должны изображаться символами «#» (решеточка), а пустые места между ними — символами «.» (точка). Во всех строках должно быть выведено одинаковое количество символов, при этом обязательно должна быть строка, в которой последним символом является решеточка, в последней строке обязательно должны быть решеточки (т.е. должен быть выведен прямоугольник из точек и решеточек, в нем не должно быть лишних столбцов и строк).
Вводится число елочек \(N\), а дальше \(N\) пар натуральных чисел, описывающих елочки: первое число каждой пары задает количество треугольников в елочке, а второе — размер самого маленького треугольника. Елочки описываются в порядке слева направо (если смотреть на вершины елочек).
Гарантируется, что входные данные будут таковы, что количество символов, которое нужно будет вывести в одной строке, не превысит 79.
Выведите требуемый «рисунок». Для лучшего понимания смотрите примеры.
2 3 2 3 3
...#......#.... ..###....###... ...#....#####.. ..###.....#.... .#####...###... ...#....#####.. ..###..#######. .#####....#.... #######..###... ........#####.. .......#######. ......#########
3 1 1 2 1 3 2
#.#...#... ..#..###.. .###..#... .....###.. ....#####. ......#... .....###.. ....#####. ...#######
После очередного этапа чемпионата мира по кольцевым автогонкам на автомобилях с открытыми колёсами Формула-А гонщики собрались вместе в кафе, чтобы обсудить полученные результаты. Они вспомнили, что в молодости соревновались не на больших болидах, а на картах — спортивных автомобилях меньших размеров.
Друзья решили выяснить победителя в одной из гонок на картах. Победителем гонки являлся тот гонщик, у которого суммарное время прохождения всех кругов трассы было минимальным.
Поскольку окончательные результаты не сохранились, то каждый из \(n\) участников той гонки вспомнил и выписал результаты прохождения каждого из \(m\) кругов трассы. К сожалению, по этой информации гонщикам было сложно вычислить победителя той гонки. В связи с этим они попросили сделать это вас.
Требуется написать программу, которая вычислит победителя гонки на картах, о которой говорили гонщики.
Первая строка входного файла содержит два целых числа \(n\) и \(m\) (\(1\le n,m\le100\)). Последующие \(2\cdot n\) строк описывают прохождение трассы каждым из участников. Описание прохождения трассы участником состоит из двух строк. Первая строка содержит имя участника с использованием только латинских букв (строчных и заглавных). Имена всех участников различны, строчные и заглавные буквы в именах различаются.
Вторая строка содержит \(m\) положительных целых чисел, где каждое число — это время прохождения данным участником каждого из \(m\) кругов трассы (каждое из этих чисел не превосходит 1000). Длина имени каждого участника не превышает 255.
В выходной файл необходимо вывести имя победителя гонки на картах. Если победителей несколько, требуется вывести имя любого из них.
5 3 Sumaher 2 1 1 Barikelo 2 1 2 Olonso 1 2 1 Vasya 1 1 1 Fedya 1 1 1
Fedya