Автор: | А. Кленин | Ограничение времени: | 4 сек | |
Входной файл: | input.txt | Ограничение памяти: | 200 Мб | |
Выходной файл: | output.txt |
По горизонтальной плоской поверхности катятся два шарика радиуса R метров каждый. В начальный момент времени шарики имеют координаты центров (x1, y1) и (x2, y2) метров, а также проекции скоростей на координатные оси (dx1, dy1) и (dx2, dy2) метров в секунду соответственно.
Требуется найти время в секундах, спустя которое шарики столкнутся, или определить, что этого не произойдёт.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | А. Кленин | Ограничение времени: | 5 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Два радара, расположенные в точках с координатами (0, 0) и (100, 0), обнаружили неопознанный объект. По таинственной причине, связанной, возможно, с внеземной природой объекта, радары оказались способны определить только направление на объект (пеленг), но не расстояние до объекта. Пеленг измеряется в градусах, против часовой стрелки, начиная от направления "на восток" (т. е. пеленг второго радара относительно первого равен 0°, пеленг первого радара относительно второго — 180°).
Требуется найти координаты НЛО или определить, что это невозможно.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Жуплев | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Владивостокский программист приглашает коллегу к себе домой в гости на празднование Хэллоуина.
Оба программиста живут за городом. Их дома расположены в точках с координатами (XA; YA) и (XB; YB).
В этом районе есть только одна асфальтированная дорога, представимая в виде отрезка с координатами начала (XS; YS) и конца (XE; YE). Дорога является платной: за любой въезд на дорогу (проезд по произвольному участку дороги или только пересечение — не имеет значения) взимается плата в размере CR. Остальная местность занята полями, которые (в связи со скорым Хэллоуином) сплошь засажены тыквами. При движении на автомобиле по полю взимается плата в размере CF за каждый километр пути — ущерб за раздавленные тыквы.
Помогите программисту добраться к другу с минимальными затратами.
Обратите внимание, при сколь угодно малом приближении к дороге плата за въезд на неё не взимается. Смотрите пример №3.
−103 ≤ XA, YA, XB, YB, XS, YS, XE, YE ≤ 103
1 ≤ CF ≤ 103
1 ≤ CR ≤ 106
Дома программистов находятся в разных точках и не находятся на дороге
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | StdAlg | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Для заданных трёх точек A, B, C найти такую точку O, что AO + BO + CO — минимально.
Во входном файле содержатся целые числа XA YA XB YB XC YC — координаты точек A, B, C соответственно.
Выходной файл должен содержать два числа XO YO — координаты точки O с точностью до 3-х знаков после запятой.
0 ≤ |XA|, |YA|, |XB|, |YB|, |XC|, |YC| ≤ 105
Никакие две точки не совпадают
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Восьмая всероссийская командная олимпиада школьников по программированию | Ограничение времени: | 2 сек | |
Входной файл: | convex.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | convex.out |
Множество на плоскости называется выпуклым, если вместе с любыми двумя точками оно содержит также и отрезок, соединяющий эти точки. Минимальное по включению множество, содержащее заданное множество точек X, называется выпуклой оболочкой множества X.
В этой задаче вам требуется найти выпуклую оболочку множества точек, принадлежащих заданному набору углов.
Углом называется геометрическая фигура, образованная двумя лучами, выходящими из одной точки. Эта точка называется вершиной угла.
На рисунке слева приведены два угла, на рисунке справа изображена их выпуклая оболочка.
Первая строка входного файла содержит число n — количество углов. Каждая из следующих n строк описывает углы. Каждый угол описывается координатами трех точек: вершины и двух отличных от вершины точек — по одной на каждом из лучей.
Выведите в выходной файл границу выпуклой оболочки в виде последовательности направленных лучей, прямых и отрезков. Никакие два объекта в выходном файле не должны лежать на одной прямой. Все отрезки должны иметь длину больше нуля. Объекты должны быть перечислены в таком порядке, чтобы начало каждого следующего совпадало с концом предыдущего. Все числа в выходном файле должны быть целыми и не превосходить 105 по абсолютной величине. При проходе вдоль описанной границы выпуклая оболочка углов должна быть справа.
На первой строке выведите l — количество объектов в ответе. Следующие l строк должны со- держать описание объектов. Объекты описываются следующим образом:
Если выпуклой оболочкой является вся плоскость, то выведите l = 0.
1 ≤ n ≤ 1000
Все координаты целые и не превышают 104 по абсолютной величине. Величина угла находится в диапазоне от 0 до 180 градусов, не включительно.
№ | Входной файл (convex.in ) |
Выходной файл (convex.out ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Author: | NEERC-2008 Jury | Time limit: | 2 sec | |
Input file: | aerodynamics.in | Memory limit: | 64 Mb | |
Output file: | aerodynamics.out |
Bill is working in a secret laboratory. He is developing missiles for national security projects. Bill is the head of the aerodynamics department.
One surprising fact of aerodynamics is called Whitcomb area rule. An object flying at high-subsonic speeds develops local supersonic airflows and the resulting shock waves create the effect called wave drag. Wave drag does not depend on the exact form of the object, but rather on its cross-sectional profile. Consider a coordinate system with OZ axis pointing in the direction of object's motion. Denote the area of a section of the object by a plane z=z0 as S(z0). Cross-sectional profile of the object is a function S that maps z0 to S(z0). There is a perfect aerodynamic shape called Sears-Haack body. The closer cross-sectional profile of an object to the cross-sectional profile of Sears-Haack body, the less wave drag it introduces. That is an essence of Whitcomb area rule. Bill's department makes a lot of computer simulations to study missile's aerodynamic properties before it is even built. To approximate missile's cross-sectional profile one takes samples of S(z0) for integer arguments z0 from zmin to zmax. Your task is to find the area S(z0) for each integer z0 from zmin to zmax, inclusive, given the description of the missile. The description of the missile is given to you as a set of points. The missile is the minimal convex solid containing all the given points. It is guaranteed that there are four points that do not belong to the same plane.4 ≤ n ≤ 100
0 ≤ zmin ≤ zmax ≤ 100
No. | Input file (aerodynamics.in ) |
Output file (aerodynamics.out ) |
---|---|---|
1 |
|
|
Автор: | И. Туфанов | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
При строительстве нового кампуса ДВФУ на о. Русском по дну пролива был проложен водовод с материка на остров. К сожалению, после завершения строительства все чертежи были утеряны, а строители разъехались. Чтобы восстановить карту водовода, были проведены гидрографические работы.
Была составлена прямоугольная карта залива, разбитая на ячейки. Левый столбец ячеек примыкает к материку, а правый — к острову. По результатам работ каждая ячейка была помечена символом '#' (по ячейке может проходить водовод) или '.' — водовод по ячейке точно не проходит.
Известно, что водовод представляет собой последовательность ячеек, имеющих общую сторону. Первая его ячейка находится в первом столбце клеток карты, последняя — в последнем. Водовод не проходит дважды через одну и ту же ячейку.
Дана карта, составленная по результатам работ. Необходимо определить, можно ли однозначно восстановить водовод по карте.
Первая строка входного файла содержит размеры карты — высоту H и ширину W. Далее следует H строк по W символов в каждой — карта.
Если положение водовода может быть однозначно восстановлено, то выведите сначала слово YES
,
а затем набор чисел, содержащих описание самого водовода.
Первое число в описании обозначает количество ячеек водовода, n, за которым следует
n пар чисел вида ri, ci, обозначающих номер строки и номер столбца очередной ячейки
(строки и столбцы нумеруются с единицы).
Если существует несколько способов восстановить положение водовода, то выведите сначала слово
MULTIPLE
, а затем два различных описания водовода в любом порядке.
Если существует более двух вариантов, выведите любые два из них.
Если водовод восстановить невозможно, выведите единственное слово NO
.
2 ≤ H, W ≤ 200
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
Author: | StdAlg | Time limit: | 1 sec | |
Input file: | input.txt | Memory limit: | 8 Mb | |
Output file: | output.txt |
No. | Input file (input.txt ) |
Output file (output.txt ) |
---|---|---|
1 |
|
|
Автор: | Кленин А. | Ограничение времени: | 4 сек | |
Входной файл: | input.txt | Ограничение памяти: | 16 Мб | |
Выходной файл: | output.txt |
Лабиринт размером N x N клеток задан массивом символов. Символ '#' обозначеет стену, символ '.' — проход. Передвигаться по лабиринту можно шагами по горизонтали или вертикали, но не по диагонали.
Требуется найти длину кратчайшего пути между левым верхним и правым нижнем углами или определить, что пути не существует.
Первая строка входного файла содержит размер лабиринта N.
Следующие N строк содержат по N символов — описание лабиринта.
Выходной файл должен содержать единственное целое число — длину кратчайшего пути, либо −1, если пути не существует
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 2 сек | |
Входной файл: | details.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | details.out |
Предприятие «Авто-2010» выпускает двигатели для известных во всем мире автомобилей. Двигатель состоит ровно из n деталей, пронумерованных от 1 до n, при этом деталь с номером i изготавливается за pi секунд. Специфика предприятия «Авто-2010» заключается в том, что там одновременно может изготавливаться лишь одна деталь двигателя. Для производства некоторых деталей необходимо иметь предварительно изготовленный набор других деталей.
Генеральный директор «Авто-2010» поставил перед предприятием амбициозную задачу — за наименьшее время изготовить деталь с номером 1, чтобы представить ее на выставке.
Требуется написать программу, которая по заданным зависимостям порядка производства между деталями найдет наименьшее время, за которое можно произвести деталь с номером 1.
Решения, правильно работающие только для тестов, в которых n не превосходит 10, будут оцениваться из 40 баллов.
Решения, правильно работающие только для тестов, в которых n не превосходит 100, будут оцениваться из 60 баллов.
Решения, правильно работающие только для тестов, в которых n не превосходит 1000, будут оцениваться из 80 баллов.
Первая строка входного файла содержит число n — количество деталей двигателя. Вторая строка содержит n натуральных чисел p1, p2… pn, определяющих время изготовления каждой детали в секундах.
Каждая из последующих n строк входного файла описывает характеристики производства деталей. Здесь i-ая строка содержит число деталей ki, которые требуются для производства детали с номером i, а также их номера.
Известно, что не существует циклических зависимостей в производстве деталей.
В первой строке выходного файла должны содержаться два числа: минимальное время (в секундах), необходимое для скорейшего производства детали с номером 1 и число k деталей, которые необходимо для этого произвести. Во второй строке требуется вывести через пробел k чисел — номера деталей в том порядке, в котором следует их производить для скорейшего производства детали с номером 1.
1 ≤ n ≤ 100000, 1 ≤ pi ≤ 109
Сумма всех чисел ki не превосходит 200000.
№ | Входной файл (details.in ) |
Выходной файл (details.out ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | И. Олейников, Т. Чистяков | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 8 Мб | |
Выходной файл: | output.txt |
Хакер Вася решил собрать карманный персональный компьютер (КПК). Согласно найденной им в Интернет инструкции компьютер собран правильно тогда, когда ток из каждой микросхемы может пройти в каждую и притом единственным путем.
Вася собрал компьютер, но сомневается в правильности сборки. Напишите программу, которая по данному Васей описанию схемы определит, какие провода нужно удалить, какие оставить и какие придется добавить, чтобы компьютер был собран правильно. Так как Васе не хочется выполнять много работы, он просит вас удалять и добавлять провода таким образом, чтобы суммарное число добавленных и удаленных проводов было минимально.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | Московская олимпиада для 7-9 кл., 2005 | Ограничение времени: | 3 сек | |
Входной файл: | e.in | Ограничение памяти: | 64 Мб | |
Выходной файл: | e.out |
Метрополитен состоит из нескольких линий метро. Все станции метро в городе пронумерованы натуральными числами от 1 до N. На каждой линии расположено несколько станций. Если одна и та же станция расположена сразу на нескольких линиях, то она является станцией пересадки и на этой станции можно пересесть с любой линии, которая через нее проходит, на любую другую (опять же проходящую через нее).
Напишите программу, которая по данному вам описанию метрополитена определит, с каким минимальным числом пересадок можно добраться со станции A на станцию B. Если данный метрополитен не соединяет все линии в одну систему, то может так получиться, что со станции A на станцию B добраться невозможно, в этом случае ваша программа должна это определить.
Во входном файле записано сначала число N — количество станций метро в городе. Далее записано число M — количество линий метро. Далее идет описание M линий. Описание каждой линии состоит из числа Pi — количество станций на этой линии и Pi чисел, задающих номера станций, через которые проходит линия (ни через какую станцию линия не проходит дважды).
В конце файла записаны два различных: числа A — номер начальной станции, и B — номер станции, на которую нам нужно попасть. При этом если через станцию A проходит несколько линий, то мы можем спуститься на любую из них. Так же если через станцию B проходит несколько линий, то нам не важно, по какой линии мы приедем.
№ | Входной файл (e.in ) |
Выходной файл (e.out ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
Автор: | И. Олейников | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Отдел инновационных технологий фирмы "Division Computers" решил, что повысить производительность в написании программ можно, если использовать модульное программирование, т.е. когда когда каждый программист пишет свою часть отдельно.
Когда все программисты сдали в отдел свою работу, выяснилось, что некоторым модулям для правильного функционирования требуются другие модули, при этом если i-тому модулю нужен j-тый, то и наоборот j-тому модулю нужен i-тый. Вам, как одному из программистов отдела, поручено написать программу, которая по сведениям о связях между модулями определила бы, сколько минимальных программ можно из них собрать. Минимальной считается программа, которую нельзя разделить на более мелкие части.
Входной файл содержит числа N и M — соответственно число модулей и связей между ними, за которыми следуют M пар чисел ai aj, означающие, что i-тый и j-тый модули не могут функционировать друг без друга.
Выходной файл должен содержать число получившихся после сборки программ.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Author: | StdAlg | Time limit: | 1 sec | |
Input file: | input.txt | Memory limit: | 8 Mb | |
Output file: | output.txt |
No. | Input file (input.txt ) |
Output file (output.txt ) |
---|---|---|
1 |
|
|
Автор: | A. Klenin | Ограничение времени: | 5 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Когда вы проектируете дизайн всплывающих диалоговых форм для интерактивных программ, важно назначить горячие клавиши (так же известные как клавиши быстрого доступа) на каждый элемент диалогового окна для ускорения работы через клавиатуру.
Для придания смысла, горячие клавиши, как правило, назначаются на основании первых букв в заголовке/названии активных элементов диалога. Ручное назначение горячих клавиш может быть утомительным занятием и не защищено от ошибок, т.к. необходимо следить за тем, чтобы случайно не назначить одну и ту же клавишу на разные элементы.
Вашей программе подается на вход список заголовков. Она должна будет назначить столько уникальных горячих клавиш, сколько вообще возможно. Каждая назначенная горячая клавиша должна быть символом соответсвующего заголовка элемента.
Для каждой комбинации позицией считается самое крайнее от начала строки (заголовка элемента) появление символа горячей клавиши. Из всех возможных решений с одинаковым количеством горячих клавиш, ваша программа должна выбрать единственное с минимальной суммой позиций горячих клавиш. Если решений с такой минимальной суммой несколько, то выведите любое из них.
Входной файл содержит количество заголовков N, за которым следует N строк с названиями заголовков.
Выходной файл должен содержать N строк с одинаковыми заголовками, как и во входном файле. В каждом заголовке, которому была назначена какая-то комбинации, перед самым левым вхождением символа из горячей клавиши необходимо добавить символ '&' (ASCII 38).
1 ≤ N ≤ 10, все заголовки имеют длину от 1 до 10 символов и состоят из строчных латинских букв.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | A. Klenin | Ограничение времени: | 8 сек | |
Входной файл: | input.txt | Ограничение памяти: | 4 Мб | |
Выходной файл: | output.txt |
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | Жюри летних сборов 2004 | Ограничение времени: | 2 сек | |
Входной файл: | brides.in | Ограничение памяти: | 64 Мб | |
Выходной файл: | brides.out |
Однажды король Флатландии решил отправить k своих сыновей на поиски невест. Всем известно, что во Флатландии n городов, некоторые из которых соединены дорогами. Король живет в столице, которая имеет номер 1, а город с номером n знаменит своими невестами.
Итак, король повелел, чтобы каждый из его сыновей добрался по дорогам из города 1 в город n. Поскольку, несмотря на обилие невест в городе n, красивых среди них не так много, сыновья опасаются друг друга. Поэтому они хотят добраться до цели таким образом, чтобы никакие два сына не проходили по одной и той же дороге (даже в разное время). Так как король любит своих сыновей, он хочет, чтобы среднее время сына в пути до города назначения было минимально.
В первой строке входного файла находятся числа n, m и k — количество городов и дорог во Флатландии и сыновей короля, соответственно (2 ≤ n ≤ 200, 1 ≤ m ≤ 2000, 1 ≤ k ≤ 100). Следующие m строк содержат по три целых положительных числа каждая — города, которые соединяет соответствующая дорога и время, которое требуется для ее прохождения (время не превышает 106). По дороге можно перемещаться в любом из двух направлений, два города могут быть соединены несколькими дорогами.
Если выполнить повеление короля невозможно, выведите на первой строке число −1. В противном случае выведите на первой строке минимальное возможное среднее время (с точностью 5 знаков после десятичной точки), которое требуется сыновьям, чтобы добраться до города назначения, не менее чем с пятью знаками после десятичной точки. В следующих k строках выведите пути сыновей, сначала число дорог в пути и затем номера дорог в пути в том порядке, в котором их следует проходить. Дороги нумеруются, начиная с единицы, в том порядке, в котором они заданы во входном файле.
№ | Входной файл (brides.in ) |
Выходной файл (brides.out ) |
---|---|---|
1 |
|
|
Входной файл: | input.txt | Ограничение времени: | 2 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб |
Напишите программу для нахождения максимального двудольного паросочетания.
Входной файл содержит целые числа p, q, m — мощности левой правой доли, а также количество рёбер соответственно.
Далее содержится описание m ребер в виде списка пар целых чисел (ui, vi). Наличие пары (ui, vi) означает ребро между ui-ой вершиной левой доли и vi-ой вершиной правой доли.
Гарантируется, кратных рёбер в графе нет.
Выходной файл должен содержать мощность максимального паросочетания с последующим перечислением рёбер из него в том же формате, что и во входном файле. Если решений несколько, выведите любое.
1 ≤ p, q ≤ 105
1 ≤ m ≤ 2*105
1 ≤ ui ≤ p
1 ≤ vi ≤ q
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Author: | StdAlg | Time limit: | 1 sec | |
Input file: | input.txt | Memory limit: | 16 Mb | |
Output file: | output.txt |
You are to write a program that receives a weighted directed graph and finds distances from source vertex S to all other vertices. Distance from S to some vertex W is the minimal length of path going from S to W. Length of path is the sum of weights of its edges.
Vertices are numbered with integers from 1 to N.
No. | Input file (input.txt ) |
Output file (output.txt ) |
---|---|---|
1 |
|
|
Author: | StdAlg | Time limit: | 1 sec | |
Input file: | input.txt | Memory limit: | 8 Mb | |
Output file: | output.txt |
No. | Input file (input.txt ) |
Output file (output.txt ) |
---|---|---|
1 |
|
|
Автор: | М. Спорышев | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
На уроке физкультуры дети решили поиграть в перетягивание канатов. Чтобы игра была интересной, им нужно разделиться на две команды, как можно меньше различающиеся по силе. Кроме того, одного школьника следует назначить судьей, который будет следить за тем, чтобы поединок проходил честно.
Дети обратились к самому умному ученику в классе, Васе, с просьбой поделить их на две команды и выбрать судью.
Вася измерил силу каждого ученика, и решил, что сила команды будет рассчитываться как сумма величин силы её участников.
Требуется по данным значениям силы каждого из учеников найти такое разделение на две команды и судью, при котором абсолютная величина разности сил команд будет наименьшей.
Входной файла содержит целое число N — количество учеников, за которыми следуют N целых чисел ai — силовые показатели каждого ученика.
Выходной файл должен содержать единственное число — наименьшую возможную абсолютную величину разницы сил получившихся команд.
3 ≤ N ≤ 30.
0 ≤ ai ≤ 107.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Кленин, краевая олимпиада 2001 г. | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Начинающий бизнесмен Вася копит в свинье-копилке деньги на открытие собственного дела. Как известно, количество денег в копилке можно определить, только разбив ее. Однако Вася не хочет разбивать копилку раньше, чем будет накоплена требуемая сумма.
Друг подсказал Васе, что можно оценить минимальное количество денег в копилке, зная вес пустой копилки и вес копилки с монетами.
Дано E — вес пустой копилки, F — вес копилки с монетами, N — количество достоинств монет, Ci и Wi — достоинство и вес каждого вида монет (1 ≤ i ≤ N). Требуется определить минимальную сумму, которая может содержаться в копилке.
В первой строке входного файла содержатся числа E F N. В следующих N строках находятся по два числа — Ci Wi. Все числа во входном файле — целые.
В выходном файле должно содержаться одно число — минимальная сумма, накопленная в копилке. Если заданный вес копилки F не может быть достигнут с монетами заданного типа, то в выходной файл следует записать число −1.
1 ≤ E ≤ F ≤ 10000; 1 ≤ N ≤ 100
1 ≤ Ci ≤ 10000; 1 ≤ Wi ≤ 10000
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Г. Гренкин | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Однажды Марфа Геннадьевна выиграла в лотерею большую сумму денег и решила потратить часть выигрыша на благотворительность.
Чтобы определить, сколько денег отдать на благотворительность, Марфа Геннадьевна придумала игру. Она записала N чисел a1, a2, ..., aN по кругу (по часовой стрелке).
Начинает Марфа Геннадьевна с числа a1. Начальная сумма денег равняется a1. Затем Марфа Геннадьевна кидает игральный кубик (на разных гранях кубика нарисовано 1, 2, 3, 4, 5 и 6 точек). Если на кубике выпало число x, то Марфа Геннадьевна отсчитывает x чисел по часовой стрелке. Например, если выпало число 3, то Марфа Геннадьевна перейдёт от числа a1 к числу a4. Число, к которому перешла Марфа Геннадьевна, прибавляется к сумме. Марфа Геннадьевна бросает кубик M раз и каждый раз прибавляет очередное число к сумме.
Марфе Геннадьевне интересно, какая наибольшая сумма денег может получиться при такой игре, поэтому ей нужна программа, вычисляющая наибольшую сумму.
Входной файл содержит целые числа N M, за которыми следуют N целых чисел a1 a2... aN.
Требуется вывести в выходной файл целое число — максимальную сумму.
1 ≤ N ≤ 1000
0 ≤ M ≤ 5000
0 ≤ ai ≤ 1000
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Г. Гренкин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
В прошлом году Марфа Геннадьевна выиграла в лотерею большую сумму денег и потратила часть выигрыша на благотворительность, причём для того, чтобы определить, сколько денег отдать на благотворительность, Марфа Геннадьевна использовала игральный кубик.
Недавно Марфа Геннадьевна опять выиграла в лотерею, и она опять хочет пожертвовать часть денег на благотворительность. Марфа Геннадьевна придумала другой способ определения суммы пожертвования с помощью игральных кубиков.
Марфа Геннадьевна бросает N игральных кубиков и подсчитывает сумму очков, выпавших на кубиках. Затем она умножает сумму очков на некоторый коэффициент — это и будет сумма пожертвования.
На каждом кубике с одинаковыми вероятностями выпадает одно из чисел от 1 до 6.
Марфу Геннадьевну интересует вероятностное распределение суммы очков на кубиках, то есть для каждого возможного значения суммы очков она хочет узнать вероятность того, что сумма очков примет такое значение.
Входной файл содержит единственное целое число N.
Требуется вывести в выходной файл (5 N + 1) пар чисел — для каждого возможного значения суммы очков от N до 6 N нужно вывести это значение и вероятность того, что сумма очков примет такое значение.
Вероятности вывести с точностью до 10-ти знаков после запятой.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | И. Туфанов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Школьники плохо написали контрольную работу по признакам делимости на k. Марфа Геннадьевна оставила их после уроков для работы над ошибками. Она написала на доске большое число N и сама на секунду задумалась. А делится ли её число на k?
Марфа Геннадьевна решила, что если её число не делится на k, то она исправит его методом тряпки, т.е. сотрёт несколько цифр в произвольных местах таким образом, чтобы новое число на доске делилось на k. При этом Марфа Геннадьевна не хочет себя утруждать и собирается стереть как можно меньше цифр.
Напишите программу, которая поможет Марфе Геннадьевне определить, какое число будет записано на доске в итоге. В записи числа не должны присутствовать лидирующие нули. Если искомых чисел найдётся несколько, выведите любое из них. Если искомого числа не существует, то Марфе Геннадьевне придётся стереть всё число целиком, а вам — вывести слово IMPOSSIBLE.
В первом примере необходимо стереть цифры 7 и 6. Если стереть цифры 1, 4, 6, то полученное число 7 будет делиться на 7, но этот ответ не оптимален.
Во втором примере нельзя просто стереть цифру 1, поскольку оставшееся число будет иметь лидирующий ноль. Необходимо стереть первые две цифры.
В третьем примере ничего нельзя поделать.
Рекомендуется рассмотреть следующие частные случаи:
Входной файл содержит целые числа k N.
Выходной файл должен содержать либо число, которое останется на доске, либо слово IMPOSSIBLE, если на доске ничего не останется.
1 ≤ k ≤ 1000;
1 ≤ N ≤ 101000;
в записи числа N нет лидирующий нулей;
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|