Информатика

15 732 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.

Возводить в степень можно гораздо быстрее, чем за n умножений! Для этого нужно воспользоваться следующими рекуррентными соотношениями:
\(a^n=(a^2)^{n/2},\ при \ четном \ n, \\ a^n=a \cdot a^{n-1},\ при \ нечетном \ n.\)

Реализуйте алгоритм быстрого возведения в степень. Если вы все сделаете правильно, то сложность вашего алгоритма будет O(logn) .

Входные данные
Программа получает на вход вещественное число a и целое число n (a > 0, 0 <= n <= 109). Каждое число в отдельной строке. 

Выходные данные 
Выведите \(a^n\) с точностью не менее 5 знаком после запятой.
 
Примеры
Входные данные Выходные данные
1 2
7
128
2 1.00001
100000
2.71827
✓ 2 303✗ 10 131500лёгкаяВойти и решать
Пришедших на занятия учеников требуется рассадить за парты. Всего пришло N учеников. За одну парту могут сесть не более L учеников. Какое минимальное число парт потребуется? Написать программу: вводятся два целых числа N и L; вывести одно число - ответ на задачу

Примеры
Входные данные Выходные данные
1 40 10 4
 
 

Даны два четырёхзначных числа A и B. Выведите все четырёхзначные числа на отрезке от A до B, запись которых является палиндромом.

Входные данные
Вводятся два целых числа A и B (\(1000 \leq A,\ B \leq 9999\)).

Выходные данные 
Выведите ответ на задачу.
✓ 5 630✗ 8 276400лёгкаяВойти и решать

Найдите и выведите все двузначные числа, которые равны удвоенному произведению своих цифр.

Входные данные 
Программа не требует ввода данных с клавиатуры, просто выводит список искомых чисел.

Выходные данные 
Выведите ответ на задачу (числа выводите в одной строке через пробел в порядке возрастания). 
✓ 6 909✗ 7 675300лёгкаяВойти и решать

Дано натуральное число n. Напишите программу, которая выводит на экран все n-значные нечетные натуральные числа в порядке убывания.

Входные данные 
Вводится одно натуральное число.

Выходные данные 
Выведите все требуемые числа в одной строке через пробел.
 

 

Примеры
Входные данные Выходные данные
1 1 9 7 5 3 1
✓ 6 012✗ 15 098400лёгкаяВойти и решать

Даны два целых числа A и В. Выведите все числа от A до B включительно, в порядке возрастания, если \(A < B\), или в порядке убывания в противном случае.

Входные данные 
Вводятся два целых числа, по одному числу в строке.

Выходные данные 
Выведите ответ на задачу. Числа можете выводить как в строчку через пробел, так и в столбик (способ вывода не важен).
 

 

Примеры
Входные данные Выходные данные
1 1
10
1 2 3 4 5 6 7 8 9 10
✓ 7 688✗ 27 934300лёгкаяВойти и решать

Даны натуральные числа abc. Если уравнение \(ax+by=c\) имеет решения в целых числах, то выберите то решение, в котором число x имеет наименьшее неотрицательное значение и выведите это решение (два числа x и y через один пробел). Если решения не существует, то выведите слово Impossible.

Входные данные 
Вводятся три натуральных числа.

Выходные данные
Выведите ответ на задачу.

Примечание
Сложность алгоритма должна быть равна сложности алгоритма Евклида + константа.
 
Примеры
Входные данные Выходные данные
1 1 2 3 1 1
2 10 6 8 2 -2

В Хогвартсе проходит традиционная ежегодная олимпиада по теории магии среди младшекурсников. Завхозу школы Аргусу Филчу поручили заняться распределением студентов по аудиториям.

Каждый факультет выставил своих лучших учеников на олимпиаду. От Гриффиндора участвует G студентов, от Слизерина S студентов, Пуффендуй представляет H студентов и Когтевран — R студентов. В распоряжении Филча находится M аудиторий. На аудитории наложено особое заклятие расширения, поэтому при необходимости они могут вместить любое количество студентов. При рассадке необходимо учесть, что ученики одного факультета, находящиеся в одной аудитории, могут, воспользовавшись случаем, начать жульничать, обмениваясь идеями по решению задач. Поэтому в любой аудитории количество студентов с одного факультета, попавших в нее, следует свести к минимуму. Назовем рассадку, удовлетворяющую такому требованию, оптимальной.

Помогите посчитать, какое минимальное количество студентов с одного факультета все же придется посадить в одной аудитории даже при оптимальной рассадке.

Входные данные: В первой строке идут четыре целых числа GSH и R (1 ≤ G, S, H, R ≤ 1000) — количество учеников, представляющих каждый из факультетов школы.

Во второй строке идет целое число M (1 ≤ M ≤ 1000) — количество классов в распоряжении у Филча.

Выходные данные: Выведите минимальное количество студентов с одного факультета, которое Филчу придётся посадить в одну аудиторию даже при оптимальной рассадке.
Примеры

Входные данные Выходные данные
1 4 3 4 4
2
2
2 15 14 13 14
3
5

Вагоны в электричке пронумерованы натуральными числами, начиная с 1 (при этом иногда вагоны нумеруются от «головы» поезда, а иногда – с «хвоста»; это зависит от того, в какую сторону едет электричка). В каждом вагоне написан его номер.

Витя сел в i-й вагон от головы поезда и обнаружил, что его вагон имеет номер j. Он хочет определить, сколько всего вагонов в электричке. Напишите программу, которая будет это делать или сообщать, что без дополнительной информации это сделать невозможно.

Входные данные: На вход программы поступают два числа i и j (1 ≤ i ≤ 1000, 1 ≤ j ≤ 1000), разделенные пробелом.
Выходные данные: Выведите одно число — количество вагонов в электричке. Если однозначно определить количество вагонов нельзя, выведите  число  0
Примеры
Входные данные Выходные данные
1 3 4 6

В одном из популярных кинотеатров все сеансы проходят с аншлагом, поэтому все места в зале всегда заняты. К сожалению, расстояние между рядами в кинозале маленькое, и зрители, пробираясь перед началом фильма к своим местам, вынуждены спотыкаться о ноги уже сидящих. Заходя в зал, зритель думает, с какой стороны ряда он будет пробираться к своему месту (с левой или с правой), и выбирает сторону так, чтобы споткнуться о меньшее число людей. В случае равенства зритель выбирает ту сторону, к которой его место ближе.

Вася, ярый любитель кино и столь же ярый ненавистник математики, первым купил билет на очередную премьеру. Когда Вася вошёл в зал и сел на своё место, он увидел, что все остальные кресла в его ряду ещё пустуют. Вася точно знал, что к началу сеанса зал заполнится до отказа, а это значило, что с минуты на минуту о его ноги начнут спотыкаться другие кинолюбители, пробирающиеся к своим местам. Несмотря на всю свою нелюбовь к математике, Вася мгновенно оценил, какое максимальное количество человек может спотнуться о его ноги, прежде чем все зрители займут свои места. А вы сможете?

Входные данные: Программа получает на вход два целые числа (по одному в строке) n и k — количество мест в том ряду, где сидит Вася, и номер его места соответственно (1≤k≤n≤50, n — чётно). Места в ряду нумеруются с единицы.

Выходные данные: Программа должна Вывести максимальное количество человек, которое может споткнуться о ноги Васи.
Примеры
Входные данные Выходные данные
1 4
1
1

В офисе, где работает программист Петр, установили кондиционер нового типа. Этот кондиционер отличается особой простотой в управлении. У кондиционера есть всего лишь два управляемых параметра: желаемая температура и режим работы.

Кондиционер может работать в следующих четырех режимах:

  • «freeze» — охлаждение. В этом режиме кондиционер может только уменьшать температуру. Если температура в комнате и так не больше желаемой, то он выключается.
  • «heat» — нагрев. В этом режиме кондиционер может только увеличивать температуру. Если температура в комнате и так не меньше желаемой, то он выключается.
  • «auto» — автоматический режим. В этом режиме кондиционер может как увеличивать, так и уменьшать температуру в комнате до желаемой.
  • «fan» — вентиляция. В этом режиме кондиционер осуществляет только вентиляцию воздуха и не изменяет температуру в комнате.

Кондиционер достаточно мощный, поэтому при настройке на правильный режим работы он за час доводит температуру в комнате до желаемой.

Требуется написать программу, которая по заданной температуре в комнате troom, установленным на кондиционере желаемой температуре tcond и режиму работы определяет температуру, которая установится в комнате через час.

Входные данные: Первая строка содержит два целых числа troom, и tcond, разделенных ровно одним пробелом (–50 ≤ troom ≤ 50, –50 ≤ tcond ≤ 50).

Вторая строка содержит одно слово, записанное строчными буквами латинского алфавита — режим работы кондиционера.

Выходные данные: Необходимо вывести дно целое число — температуру, которая установится в комнате через час.

Примечание: 
В первом примере кондиционер находится в режиме нагрева. Через час он нагреет комнату до желаемой температуры в 20 градусов.

Во втором примере кондиционер находится в режиме охлаждения. Поскольку температура в комнате ниже, чем желаемая, кондиционер самостоятельно выключается и температура в комнате не поменяется.
Примеры

Входные данные Выходные данные
1 10 20
heat
20
2 10 20
freeze
10

Всем известно, что в 2012 году прошла Летняя Олимпиада в Лондоне, однако не каждый знаком с историей крупнейших спортивных соревнований. Традиция игр зародилась в Древней Греции, но была забыта по завершении античной эпохи и вновь появилась лишь в конце XIX века благодаря французскому общественному деятелю Пьеру де Кубертену.

С 1896 года вновь проводятся летние Олимпийские игры, а с 1924 — зимние, причём оба вида соревнований проходят раз в четыре года. Первое время зимняя и летняя Олимпиады проводились в один и тот же год, но в конце XX века Международный олимпийский комитет принял решение установить между разными видами Игр двухгодичный перерыв. Таким образом, 1992 год был в последний раз отмечен проведением одновременно летних и зимних Олимпийских игр, в 1994 проводились только зимние, в 1996 — летние, и с тех пор они продолжают чередоваться.

Известно также, что в 1916, 1940 и 1944 годах Олимпийские игры были отменены по причине Первой и Второй мировых войн, а в 1906 году проводилась внеочередная Олимпиада.

Требуется написать программу, которая по заданному году определит, проводились ли в этом году Олимпийские игры и были ли они летними или зимними.

Входные данные: На вход программе подаётся одно натуральное число N (1800 ≤ N ≤ 2014) — номер года.

Выходные данные: Выведите «winter», если в этом году была проведена только зимняя Олимпиада, «summer», если только летняя, «winter summer», если прошли обе олимпиады, и «nothing», если в этот год олимпийских игр не проводилось.

Примеры
Входные данные Выходные данные
1 1896 summer
2 1924 winter summer
Обеденный перерыв Гомера Симпсона составляет T миллисекунд. Один гамбургер Гомер съедает за N миллисекунд, один чизбургер - за M. Какое количество гамбургеров и чизбургеров нужно съесть, чтобы потраченное время было как можно больше, не превышая T. При равенстве потраченного времени необходимо максимизировать суммарное количество съеденных гамбургеров и чизбургеров.

Ограничения: 1 <=M, N, T, <= 1000000 , все числа целые.

Входные данные
В первой строке находятся три числа - M, N и T, разделённые пробелами.

Выходные данные
Вывести максимальное суммарное число гамбургеров и чизбургеров. Если остаётся какое-то время, требуется указать его через пробел. Предпочтителен вариант, когда дополнительного времени остаётся как можно меньше.
 
Ввод Вывод
1 2 1000 1000
2 1 1000 1000
3 6 1000 333 1
С клавиатуры вводятся два целых числа - стороны прямоугольника. Напишите программу нахождения его периметра и длины диагонали. Выведите в первой строке периметр прямоугольника, во второй строке - длину его диагонали.
 
Пример
Входные данные Выходные данные
1 2 13 30
13.152946
Палиндромом называется слово, которое одинаково читается как слева направо, так и справа налево, например, в английском языке такими словами являются «radar» и «racecar».
Света изучает английский язык и решила принять участие в дистанционном конкурсе знатоков английского языка. Но, когда она писала ответ на задание «найдите самое длинное слово, которое является палиндромом», ошиблась и нажала на клавиатуре одну лишнюю клавишу.
Определите, какую букву нужно удалить в набранном Светой слове, чтобы это слово стало палиндромом.

Входные данные
Программа получает на вход строку из строчных английских букв, содержащую не менее 2 и не более 100 000 символов.

Выходные данные
Программа должна вывести единственное число – номер буквы в строке, при удалении которой слово становится палиндромом. Если при удалении любой буквы слово не станет палиндромом, программа должна вывести число 0.
Примеры
Входные данные Выходные данные
1 raceczar 6
2 car 0
✓ 38✗ 133800средняяВойти и решать

Напишите рекурсивную функцию, которая вычисляет максимальное значение из последовательности целых чисел, поданных не её вход. Ввод заканчивается числом 0. Основная программа должна содержать вызов функции и вывод результата. Запрещено использовать циклы

Входные данные:  Во входных строках записаны целые числа, по одному в каждой строке. В последней строке записано число 0.

Выходные данные: Программа должна вывести одно число – максимальное значение из всех элементов последовательности (не считая числа 0).
 

Примеры
Входные данные Выходные данные
1 1
3
2
0
3
✓ 153✗ 231500лёгкаяВойти и решать

Напишите рекурсивную функцию, которая вычисляет сумму элементов последовательности целых чисел, поданных не её вход. Ввод заканчивается числом 0. Основная программа должна содержать вызов функции и вывод результата. Запрещено использовать циклы

Входные данные: Во входных строках записаны целые числа, по одному в каждой строке. В последней строке записано число 0.

Выходные данные: Программа должна вывести одно число – сумму всех элементов последовательности.

Примеры
Входные данные Выходные данные
1 1
2
3
0
6
✓ 293✗ 258500лёгкаяВойти и решать

Напишите рекурсивную функцию, которая выбирает из полученной последовательности квадраты целых чисел и выводит их в обратном порядке. Использовать массив для хранения последовательности не разрешается. Запрещено использовать циклы. 
Основная программа должна содержать вызов функции и вывод результата

Входные данные: Во входных строках записаны целые числа, по одному в каждой строке. В последней строке записано число 0.

Выходные данные:  Программа должна вывести элементы полученной последовательности, которые представляют собой квадраты целых чисел, в обратном порядке в одну строчку, разделив их пробелами. Если таких нет, программа должна вывести число 0.

Примеры
Входные данные Выходные данные
1 1
2
3
4
0
4 1
✓ 30✗ 240800средняяВойти и решать

Напишите рекурсивную функцию, которая считает количество чётных цифр введённого числа.
Основная программа должна содержать ввод исходных данных, вызов функции и вывод результата
Запрещено использовать циклы

Входные данные: Входная строка содержит одно натуральной число .

Выходные данные: Программа должна вывести количество чётных цифр введённого числа.

Примеры

Входные данные Выходные данные
1 123456 3
2 13579 0
✓ 446✗ 402400лёгкаяВойти и решать

Напишите программу, которая определяет, попала ли точка с заданными координатами в заштрихованную область.

Входные данные: Входная строка содержит два вещественных числа – координаты точки на плоскости (сначала -координата, затем – -координата)

Выходные данные: Программа должна вывести слово 'YES', если точка попала в заштрихованную область, и слово 'NO', если не попала.

 

Примеры
Входные данные Выходные данные
1 -0..5 -0.5 YES
2 -1. 1.5  NO
Поделиться
Класснуть