Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб | |
Максимальный балл: | 100 |
Иван Петрович, учитель математики в средней школе города N-ска, хочет провести контрольную работу на тему «делимость целых чисел». Учитель хочет составить очень много различных вариантов контрольной работы, чтобы ученики не могли списать друг у друга.
Иван Петрович придумал следующую задачу: пусть даны целые числа A и N, найдите целое число B такое, что AB + A + B делится на N. Он решил составить несколько подобных задач, изменяя данные в условии задачи. Для того, чтобы быстро проверить решение задачи учениками учителю необходимо знать и ответы на эти задачи. Помогите Ивану Петровичу написать программу, которая будет решать его задачу для различных исходных данных, поможет сэкономить много времени и сил при подготовке и проверке контрольной работы.
Единственная строка входного файла содержит два целых числа A, N, разделённых знаком пробела – числа, которые будут использоваться для очередного варианта контрольной.
В выходной файл нужно вывести одно число B – ответ на задачу Ивана Петровича. Число B должно быть неотрицательным и не превышать 109. Если такого B не найдется – необходимо вывести число −1.
1 ≤ A, N ≤ 109
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | input.txt | Ограничение времени: | 2 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб | |
Максимальный балл: | 100 |
В теории кодирования часто используют беспрефиксные коды – наборы слов, ни одно из которых не является префиксом другого. Слово α называется префиксом слова β, если α получается из β удалением нуля или более символов в конце. Например, слова «», «a», «ab» и «aba» являются префиксами слова «aba». Например, набор слов «aba», «aa» и «bac» является беспрефиксным кодом, а набор «abac», «aba», «ba» – нет, поскольку слово «aba» является префиксом слова «abac».
Профессор главного университета города Соколовка де Фрошин дает задания нерадивым студентам по кодированию информации – почти беспрефиксные коды. Набор слов называется почти беспрефиксным кодом уровня k, если наибольший общий префикс двух любых слов из набора не превышает по длине k. Например, набор «abac», «abс», «ba» является почти беспрефиксным кодом уровня 2, а набор «abac», «abab», «ba» – уровня 3, поскольку наибольший общий префикс слов «abac» и «abab» имеет длину 3.
Задача, которую профессор де Фрошин поставил своим студентам, заключается в следующем: по заданному набору слов и числу k требуется выбрать из заданных слов максимальный набор, который является почти беспрефиксным кодом уровня k. А вас он просит написать программу для помощи в проверке ответов.
Первая строка входного файла содержит два целых числа: n и k – количество слов в заданном наборе и уровень почти беспрефиксного кода, который требуется построить. Следующие n строк содержат по одному слову. Слова состоят из строчных букв латинского алфавита. Длина каждого слова от 1 до 200 символов. Суммарная длина всех слов не превышает 106. Все слова различны.
В первой строке выходного файла выведите одно число m – максимальное количество слов, которые можно выбрать из заданного набора, чтобы они образовывали почти беспрефиксный код уровня k. Следующие m строк должны содержать выбранные слова.
1 ≤ n ≤ 100 000
0 ≤ k ≤ 200
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Входной файл: | input.txt | Ограничение времени: | 2 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб | |
Максимальный балл: | 100 |
Город Соколовка находится на берегах реки Флатовка, протекающей с юга на север. Жители города очень деловые и поэтому написали письмо мэру города с просьбой построить новый мост через реку для того, чтобы можно было перемещаться из одной части города в другую без автомобильных пробок. Однако возможности городского бюджета ограничены, поэтому мэр решил построить мост минимально возможной длины. Вдоль реки по обоим берегам проходят автомобильные дороги, поэтому выезд на мост можно сделать в любом месте.
Для упрощения задачи поиска местоположения моста, можно представить, что берега реки представляют собой ломаные, бесконечные в обе стороны. Введем координатную систему таким образом, чтобы ось OY была направлена с юга на север, а ось OX – с запада на восток. Левый берег начинается лучом, направленным на юг из точки (x1, 1, y1, 1), продолжается отрезками
(x1, 1, y1, 1) − (x1, 2, y1, 2), (x1, 2, y1, 2) − (x1, 3, y1, 3), …, (x1, m−1, y1, m−1) − (x1, m, y1, m)
и заканчивается лучом, направленным на север из точки (x1,m, y1, m). Аналогично, правый берег реки начинается лучом, направленным на юг из точки (x2, 1, y2, 1), продолжается отрезками(x2, 1, y2, 1) − (x2, 2, y2, 2), (x2, 2, y2, 2) − (x2, 3, y2, 3), …, (x2, n−1, y2, n−1) − (x2, n, y2, n)
и заканчивается лучом, направленным на север из точки (x2, n, y2, n).Помогите мэру города выяснить, мост какой минимальной длины можно построить.
Первая строка входного файла содержит целое число m. Следующие m строк содержат по два целых числа – координаты вершин ломаной левого берега: x1,1; y1,1, x1,2; y1,2, …, x1,m; y1,m.
Следующая строка входного файла содержит целое число n. Следующие n строк содержат по два целых числа – координаты вершин ломаной правого берега: x2,1; y2,1, x2,2; y2,2, …, x2,n; y2,n.
Известно, что x1,1 < x2,1, каждая из ломаных не имеет самопересечений и самокасаний, ломаные не имеют общих точек. Все отрезки каждой из ломаных имеют положительную длину. Все координаты не превосходят 104 по абсолютной величине.
Выведите в выходной файл одно вещественное число: минимальную возможную длину моста. Ваш ответ будет проверяться с точностью 10−5.
Оптимальное положение моста показано на следующем рисунке:
2 ≤ m, n ≤ 100
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Входной файл: | input.txt | Ограничение времени: | 2 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб | |
Максимальный балл: | 100 |
Лешу навестили родственники из деревни и привезли много персиков. Поскольку персиков было действительно много, и они быстро портятся, Леша решил поделиться с друзьями. Каждый раз, когда он встречает какого-либо своего друга, он смотрит на персики, которые у него есть и отдает другу половину.
Но Леша не одинаково любит всех своих друзей, поэтому некоторым из них он отдает половину всех имеющихся у него персиков, а некоторым – только половину персика. Он решил не делить фрукты более, чем на две равные части. Если он встречает друга, а у него нечетное число персиков, то он вынужден разделить один из фруктов надвое.
Утром у Леши было n персиков, а за день он встретил k друзей. Выясните, сколько персиков у него могло остаться вечером.
Входной файл содержит два целых числа: n – количество персиков у Леши и k – количество встреченных им за день друзей.
Первая строка выходного файла должна содержать число m – количество вариантов ответа на вопрос, сколько персиков может быть у Леши вечером. Следующая строка должна содержать m вещественных чисел, отсортированных по возрастанию – варианты ответов.
(1 ≤ n, k ≤ 1000)
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|