Задача. Детали (details) На клеточном поле N×M расположены

advertisement
Задача. Детали (details)
На клеточном поле N×M расположены две жёсткие детали. Деталь
A накрывает в каждой строке несколько (не ноль) первых клеток,
деталь B несколько (не ноль) последних; каждая клетка либо
полностью накрыта одной из деталей, либо нет. Деталь B начинают
двигать влево, не поворачивая, пока она не упрётся в A хотя бы
одной клеткой. Определите, на сколько клеток будет сдвинута деталь B.
Формат входных данных
В первой строке входного потока расположены два числа N и M - число строк и столбцов
соответственно (1 <=N, M<=100). Далее следуют N строк, задающих расположение
деталей. В каждой находится ровно M символов ‘A’ (клетка, накрытая деталью A), ‘B’
(накрытая деталью B) или ‘.’ (свободная клетка).
Формат выходных данных
Выведите в выходной поток одно число - ответ на задачу.
Пример
Ввод
Вывод
4 6
1
AA.BBB
A....B
AAA..B
A..BBB
Задача. Maximum (max)
Вам дано N чисел. Выберите из них такие два x и y, чтобы их частное x/y было
наибольшим возможным.
Формат входных данных
В первой строке входного потока находится одно целое число N - общее количество чисел
(2<=N<=30 000). В следующей строке входного потока находятся N целых чисел a1, a2, ... ,
aN; числа не превосходят по модулю 30 000. Гарантируется, что среди этих чисел хотя бы
одно не равно нулю.
Формат выходных данных
В выходной поток выведите сначала число x, потом y. Знаменатель y не должен равняться
нулю; x и y могут быть одинаковыми, только если соответствующее им число появляется
во входном потоке более одного раза (строго говоря, должны существовать такие
различные индексы i и j, что 1<=i, j<=N, x=ai и y=aj).
Если решений несколько, то выведите такое при котором и x, и y будут минимальны.
Пример
Ввод
Вывод
5
2 1
-2 0 1 2 -1
3
0 -1
-1 0 2
3
2 2
2 2 0
Задача. Кофе (coffee)
В Научно-образовательном центре недавно заново покрасили стены. Всё было бы ничего,
если бы на этаж ниже не стоял кофейный аппарат: особую опасность для недавно
покрашенных стен представляют школьники, пьющие кофе, поскольку иногда они
разливают кофе и он забрызгивает стены, находящиеся от школьника на расстоянии,
меньшем некоторого заданного R (если расстояние до стены равно R, она не пачкается).
Для борьбы с этой напастью в одной из секретных лабораторий центра разрабатывается
система, которая в момент разливания школьником кофе регистрирует его координаты (x,
y) и радиус разлёта кофе R. Предполагается, что она будет устанавливаться во всех
свежеокрашенных комнатах, а данные наблюдений будут записываться в единый журнал.
Каждая комната считается прямоугольником ненулевой площади со сторонами,
параллельными осям координат.
Вашей задачей в данном проекте является разработка кода, который будет определять,
какие случаи разливания кофе, зафиксированные в журнале, завершились запачкиванием
стен.
Формат входных данных
Во входном потоке приведено содержание журнала разливания кофе. В первой строке
указано число записей в журнале N (1<=N<=20).
Во второй и последующих строках приведены сами записи, по одной записи на строку.
Каждая запись представляет собой 7 чисел x1, y1,x2, y2, R, x, y, разделённых пробелами.
Здесь (x1, y1), (x2, y2) - координаты двух противоположных углов комнаты, в которой
зафиксировано данное разливание кофе, R - радиус разлёта кофе,(x, y) – координаты точки
внутри комнаты, в которой кофе был разлит. Все координаты во входном потоке целые и
не превосходят по модулю10 000, радиус R тоже целый, 0<=R<=10 000.
Формат выходных данных
В выходном потоке должно быть N строк. На i-й строке должно быть выведено ‘yes’, если
при i-м разливании кофе испачкало стену, иначе должно быть выведено ‘no’.
Ввод
Вывод
3
no
-2 1 10 9 1 0 2
no
3 5 16 -3 2 10 0
yes
3 -6 5 20 2 4 13
Задача. Собрать квадрат (square)
Вы участвуете в проекте по исследованию интеллекта обезьян. Ваш научный
руководитель, доктор биологических наук профессор О. Б. Ломов предложил новый тест
для определения умственных способностей орангутангов. Обезьяне выдаётся набор из N
палочек различной длины, и она должна составить из них квадрат. Это оказалось не самой
простой задачей для ваших подопечных, хотя некоторые особи могут справиться с ним
при N, достигающих 10. Но самой большой сенсацией стали неожиданные успехи
орангутанга Миши, который научился решать эту задачу даже при очень больших N порядка нескольких сотен. Правда, решает он её весьма своеобразно. Он выбирает из всех
палочек четыре и составляет из них квадрат.
Последнее время вы проводите с Мишей много экспериментов. К сожалению, не все из
них удачны: из некоторых наборов палочек Миша не может собрать квадрат. После
многочисленных неудачных попыток заставить Мишу решить задачу вы предположили,
что на таких наборах палочек задача неразрешима. К сожалению, проверить её
разрешимость оказалось довольно сложно, и вы решили написать программу, которая вам
поможет.
Формат входных данных
На первой строке входного потока находится одно число N - количество палочек, которые
вы предложили Мише (1<=N<=1000). На второй строке находятся N натуральных чисел,
не превосходящих 1000 - длины палочек.
Формат выходных данных
Если задача разрешима, т. е. из данных палочек можно выбрать четыре, из которых можно
собрать квадрат, то выведите в выходной поток одно число - длину стороны квадрата
максимальной площади, который можно собрать из данного набора палочек. Если
решения не существует, выведите в выходной поток одно число -1.
Ввод
Вывод
6
3
3 3 2 3 2 3
6
-1
1 3 2 3 2 3
5
-1
1 1 2 2 2
Задача. Кривой горизонт (horizon)
Фирма, в которой работает ваш друг, недавно провела
рекламную акцию «Сфотографируй маршрутку - получи
приз», в рамках которой пассажиры могли присылать свои
фотографии маршруток этой фирмы, а потом специальная
конкурсная комиссия выбирала из них лучшие и
награждала
победителей.
Теперь
организаторы
собираются выставить все фотографии на сайт фирмы.
При подготовке фотографий возникла одна проблема:
видимо,
некоторые
пассажиры
фотографировали
маршрутки наспех, и потому некоторые фотографии
оказались перекошенными: те линии, которые по идее
должны быть горизонтальными, оказались наклонными
(см. рис.). Администратор сайта категорически отказался выставлять такие фотографии на
сайт, порекомендовав организаторам повернуть и обрезать фотографии так, чтобы
горизонтальные линии стали на самом деле горизонтальными.
Поэтому организаторы провели большую работу и для каждой фотографии определили,
под каким углом на фотографии наклонён горизонт. Теперь им надо вырезать из
фотографии прямоугольник, у которого две стороны были бы параллельны горизонту, а
две другие, конечно, перпендикулярны. Организаторы хотели вырезать прямоугольник
наибольшей возможной площади, удовлетворяющий этому условию, но администратор
сайта упростил им работу, потребовав сохранить отношение сторон фотографии. Таким
образом, им теперь надо из каждой фотографии вырезать прямоугольный кусок со
сторонами, параллельными и перпендикулярными горизонту, и с тем же отношением
сторон, что и у оригинальной фотографии, причём среди всех таких прямоугольников
выбрав наибольший по площади.
Зная вашего друга не только как хорошего экономиста, но и человека со связями, они
обратились к нему с просьбой найти программу, которая помогла бы им выбрать нужный
прямоугольник. Ваш друг перенаправил эту просьбу к вам.
Обратите внимание, что порядок сторон администратору сайта важен: если на
оригинальной фотографии ширина была w, а высота h, а у найденного прямоугольника
ширина (т. е. сторона, параллельная горизонту) w’, а высота (т. е. вторая сторона) h’, то
должно быть w:h=w’:h’, а не w:h=h’:w’.
Формат входных данных
Во входном потоке находятся три вещественных числа: w, h и α - размеры оригинальной
фотографии (ширина, высота) и угол наклона горизонта к ширине в градусах (см. рис.).
Гарантируется, что 0< w<=100, 0< h<=100, −90<=α<=90.
Положительные α обозначают, что горизонт получается из ширины фотографии
поворотом против часовой стрелки (как на рисунке), отрицательные α - по часовой
стрелке.
Формат выходных данных
В выходной потока выведите одно число - площадь искомого прямоугольника. Ответ
должен быть выведен с точностью 3 знака после запятой.
Ввод
Вывод
4 3 30
5.108
4 3.0 0
12.000
4 3 90.0
6.750
Задача. Котлеты (burgers)
На сковородке одновременно можно положить k котлет. Каждую котлету нужно с каждой
стороны обжаривать m минут непрерывно. За какое наименьшее время удастся поджарить
с обеих сторон n котлет?
Входные данные
В единственной строке входного потока записано три натуральных числа: k, m, n, не
превышающих 30000.
Выходные данные
В единственную строку выходного потока нужно вывести единственное число –
минимальное время, за которое можно поджарить все котлеты.
Пример
Ввод
Вывод
1 1 1
2
2 2 1
4
Задача. Футбол (soccer)
Вместо того чтобы делать уроки, Вася смотрел футбольный матч и записывал счет,
который показывался на табло, после каждого забитого гола. Например, у него могла
получиться такая запись: 1:0, 1:1, 1:2, 2:2, 2:3. После этого он сложил все записанные
числа: 1+0+1+1+1+2+2+2+2+3=15.
По сумме, получившейся у Васи, определите, сколько всего мячей было забито в матче.
Входные данные
В первой строке входного потока записано одно целое неотрицательное число, не
превосходящее 1000 – сумма, полученная Васей.
Выходные данные
В выходной поток выведите одно число – общее количество забитых мячей.
Пример
Ввод
Вывод
15
5
Задача. Домашняя работа (homework)
Во время очередного внеочередного карантина легендарная учительница начальных
классов Марья Ивановна выложила на своем блоге домашние задания по математике.
Каждое задание состоит из нескольких арифметических выражений, состоящих из целых
чисел и знаков +, -, *, /,=. Выполненные задания необходимо переслать Марье Ивановне
на электронную почту. Чтобы облегчить проверку заданий, Марья Ивановна обратилась к
Васе Пупкину, неоднократному победителю олимпиад по программированию, с просьбой
написать программу, проверяющую правильность выполнения заданий. Ссылаясь на
занятость по подготовке к очередной олимпиаде, Вася решил обратиться за помощью к
Вам.
P.S. Ввиду того, что дети только недавно приступили к изучению арифметики, в
выражении не могут встречаться дробные числа.
Входные данные
В первой строке входного потока задано число N (1<=N<=10) - количество примеров.
Далее в N строках расположены арифметические выражения, состоящих из целых чисел и
знаков +,-,*,/, = . Числа не превышают 30000. Каждое выражение записано в отдельной
строке.
Выходные данные
В выходной поток необходимо вывести результат проверки выражения – RIGHT, если
выражение записано верно, WRONG, если выражение записано неверно или INCORRECT,
если выражение записано некорректно. Некорректной записью является любая, где идут
два нецифровых символа подряд, либо нарушена очередность данных: число, операция,
число, равно, число.
Ввод
Вывод
3
RIGHT
2+3=5
WRONG
2*2=5
INCORRECT
2--1=1
Задача. Гипотеза Гольбаха (Golbach)
Известно, что любое чётное число, большее 2, представимо в виде суммы 2 простых
чисел, причём таких разложений может быть несколько. Впервые гипотезу о
существовании данного разложения сформулировал математик Х. Гольбах.
Требуется написать программу, производящую согласно утверждению Гольбаха,
разложение заданного чётного числа. Из всех пар простых чисел, сумма которых равна
заданному числу, требуется найти пару, содержащую наименьшее простое число.
Входные данные
Входной поток содержит чётное число N (4 <= N <= 998).
Выходные данные
В выходной поток необходимо вывести два простых числа, сумма которых равна числу N.
Первым выводится наименьшее число.
Примеры
Ввод
Вывод
6
3 3
992
73 919
Задача. Кола (cola)
Завод по производству колы изготавливает ее не только для магазинов, но и для всемирно
известной сети ресторанов быстрого питания.
Ежедневно завод отгружает один и тот же объем колы в литрах. Служба доставки сети
ресторанов обычно использует для транспортировки колы емкости объемом или только 50
литров, или только 70 литров. Если доставка осуществляется с помощью емкостей в 50
литров, то для перевозки имеющегося объема колы необходимо A емкостей. А если с
помощью емкостей в 70 литров, то необходимо Bемкостей. При этом в каждом из случаев
одна из емкостей может быть заполнена не полностью.
Недавно сеть ресторанов решила утвердить новый объем емкостей для доставки колы —
60 литров. Сколько емкостей теперь может понадобиться для доставки того же самого
объема колы?
Входные данные
Входные данные содержат 2 числа A и B, расположенных каждое в отдельной строке
(1 ≤ A, B ≤ 10 000 000).
Выходные данные
Выведите все возможные значения для количества емкостей по 60 литров, которые
окажутся заполненными (в том числе одна возможно частично), в порядке возрастания
или число - 1, если значения A и B противоречат друг другу, то есть они были записаны
неверно.
Примеры
Ввод
Вывод
3
23
2
1
-1
2
Download