Целые числа

175 задач
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Наше счастье постоянно — жуй кокосы, ешь бананы, Жуй кокосы, ешь бананы, Чунга-чанга!
м/ф «Катерок»
После открытия острова «Чунга-Чанга» туда постепенно начала пробираться цивилизация и даже стала развиваться рыночная экономика. Появилась и новая валюта — чижик. Теперь для того, чтобы счастливо жевать кокосы, их нужно сначала купить под пальмой.

Саша и Маша проходили мимо пальмы, под которой продаются кокосы по цене z чижиков за штуку. У Саши есть x чижиков, а у Маши y. Каждая из девочек собирается купить максимальное число кокосов, на которое у неё хватит денег. Обсудив планы о покупке кокосов, девочки заметили, что если одна из них передаст какое-то количество чижиков другой, то суммарное количество кокосов, которое они купят, может от этого увеличиться (а может и уменьшиться). Кокосы не продаются по частям, то есть каждая из девочек может купить только целое неотрицательное число кокосов. Чижики тоже не могут быть разделены на части, то есть одна из девочек может передать другой только целое неотрицательное число чижиков.

Например, предположим, что у Саши было 5 чижиков, у Маши 4, а один кокос стоит 3 чижика. Тогда, если девочки не будут обмениваться чижиками, то они купят 1+1=2 кокоса. Если же Маша передаст Саше один чижик, то у Саши их будет 6, а у Маши 3, и девочки купят 2+1=3 кокоса.

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

Входные данные
Первая строка содержит три целых числа x, y и z (0 ≤ x, y ≤ 1018 , 1 ≤ z ≤ 1018) — количество чижиков у Саши, количество чижиков у Маши и цена одного кокоса.

Выходные данные
Выведите два целых числа — максимальное суммарное количество кокосов, которое можно купить, и минимальное количество чижиков, которым для этого придётся поделиться одной из девочек.
Примечание
Первый пример разобран в условии задачи. Во втором примере оптимально не обмениваться чижиками, в таком случае будет куплено 3+4=7 кокосов.
Примеры
Входные данные Выходные данные
1 5 4 3 3 1
2 6 8 2 7 0
Пете нужно оклеить обоями стену размером N метров в высоту и M метров в ширину. Для поклейки используются обои, которые продаются рулонами. Каждый рулон имеет ширину 1 метр и длину K метров. Обои клеятся на стену вертикальными полосами (сверху вниз). При этом Петя хочет так поклеить обои, чтобы горизонтальных стыков разных кусков не было (то есть один цельный кусок клеится от потолка до пола). От рулона можно отрезать куски нужного размера (иногда при этом может оставаться кусок, меньшего размера, который поэтому не может быть поклеен, этот кусок идет в отходы).

По данным числам N, M и K определите наименьшее количество рулонов, которое нужно купить Пете, чтобы оклеить всю стену.

Формат входных данных
Вводятся натуральные числа N, M и K (1 ≤ N ≤ 100, 1 ≤ M ≤ 100, N ≤K ≤100).

Формат выходных данных
Выведите одно число - количество рулонов, которые должен купить Петя.
В школе продолжительность каждого урока 45 минут, а перемены между уроками – всего 5 минут. Первый урок начинается ровно в 8 часов утра. Напишите программу, отвечающую на вопрос «во сколько в этой школе заканчивается K-ый урок?»

Формат входных данных
Вводится одно натуральное число K, не превышающее 15.

Формат выходных данных
Выведите время окончания K-ого урока: сначала часы, потом минуты, разделяя их пробелом.
Витя подключен к интернет по следующему тарифному плану. Ежемесячная абонентская плата составляет A рублей, и в эту абонентскую плату включено B мегабайт трафика. Неизрасходованные мегабайты в конце месяца «сгорают». Если трафик превышает B мегабайт, то каждый мегабайт трафика сверх предоплаченных стоит C рублей.

Известно, что за прошлый месяц Витя израсходовал D мегабайт трафика. Определите, во сколько обошелся ему доступ в интернет в прошлом месяце (считая в том числе и абонентскую плату)?

Формат входных данных
Вводятся четыре натуральных числа A, B, C, D. Все числа не превышают 100.

Формат выходных данных
Выведите одно число — сумму (в рублях), которую Витя должен заплатить за интернет.
На выборах в Государственную думу в избирательные бюллетени внесено N партий. Электронный сканер для считывания информации с бюллетеней передает информацию о каждом бюллетене в следующем формате: если в соответствующей клетке бюллетеня стоит пометка, то сканер передает + (плюс), в противном случае он передает - (минус). Таким образом, он передает последовательность из N символов - плюсов и минусов.

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

Партия проходит в Государственную Думу, только если она набирает не менее 7% от общего числа действительных бюллетеней.

Требуется вывести номера (в порядке их перечисления в бюллетене) всех партий, которые проходят в Государственную Думу.

Входные данные
В первой строке входных данных содержатся два числа, разделенные пробелом: N - количество партий и M - количество бюллетеней. Оба числа натуральные, N ≤ 200, M ≤ 100 000.

В следующих M строках записана информация, полученная из бюллетеней. Каждая строка - последовательность из N символов + или - (без пробелов).

Гарантируется, что есть хотя бы один действительный бюллетень.

Выходные данные
Выведите через пробел номера партий, прошедших в Думу, в порядке возрастания. Если ни одна из партий не проходит в Думу,  выводить ничего не нужно.
 
Примеры
Входные данные Выходные данные
1 3 4
+--
+--
-+-
+-+
1 2
2 1 5
+
-
-
-
-
1
Для заезда в оздоровительный лагерь организаторы решили заказать автобусы. Известно, что в лагерь собираются поехать N детей и M взрослых. Каждый автобус вмещает K человек. В каждом автобусе, в котором поедут дети, должно быть не менее двух взрослых.

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

Входные данные
На вход программы поступают 3 натуральных числа, записанных через пробел - N, M и K, каждое из них не превосходит 10 000.

Выходные данные
Выведите количество автобусов, которые нужно заказать. Если же отправить всех в лагерь невозможно, выведите 0 (ноль).
 
Примеры
Входные данные Выходные данные
1 10 4 7 2
2 10 4 5 0
Витя безумно любит статистику. Ещё бы — у них со старшим братом день рождения приходится на один и тот же день года! Теперь каждый год в свой день рождения он записывает, сколько лет ему и его брату, и пытается найти в этих записях что-нибудь интересное.

Сегодня у Вити день рождения, и он показал свои записи Алёне. Витя знает, что она тоже любит исследовать всякие наборы чисел и находить в них закономерности. Алёна тут же заметила интересный момент: когда в один из прошлых дней рождения Вите было n лет, его брату было m лет, а сегодня Витя младше своего брата ровно в k раз!

Вернувшись вечером домой, Алёна заинтересовалась вопросом: а достаточно ли этих данных, чтобы вычислить, сколько лет исполнилось Вите сегодня? Алёна быстро справилась, а сможете ли вы решить эту сложную задачу и выяснить по числам n , m и k , сколько лет Вите?

Входные данные
Ввод состоит из трех строк, которые содержат по одному натуральному числу: n , m и k — возраст Вити и его брата в былые времена, а также во сколько раз Витя сегодня младше своего брата ( 1 ≤ n < m ≤ 10 000 , 2 ≤ k ≤ 10 000 ).

Выходные данные
Если описанная в условии ситуация могла произойти, выведите единственное число t — сколько лет сегодня исполнилось Вите.

Если Витя и Алёна ошиблись, и описанной ситуации быть не могло, выведите число - 1 .
 
Входные данные Выходные данные
1 4
15
2
11
2 4
15
3
-1
3 4
8
2
-1
А мы, тем временем, возвращаемся в поезд Москва-Адлер, где Максим все-таки был пойман папой, и три рулона туалетной бумаги не были выпущены из окна первого вагона («Ну паааап, ну мне было интересно, что длиннее — поезд или бумага, ну не надо за ухо»).

Теперь Максим сидит в купе вместе с мамой. Чтобы отвлечь его от продумывания деталей новых экспериментов, мама — неплохой математик — рассказала Максиму одну любопытную задачу («Мои студенты в среду ее так и не смогли решить, совсем считать разучились»).

Дано число x. Каждую его цифру нужно умножить на 19, прибавить к результату 40, полученное число снова умножить на 19, взять последнюю цифру этого произведения и поставить его на место исходной цифры в числе x. Вопрос: какое число получится в итоге?

Максим, впрочем, решил задачу гораздо быстрее, чем ожидала его мама, и, к сожалению, снова был готов к экспериментам. А сможете ли вы?

Входные данные
Дано целое число x (0≤x≤10000).

Выходные данные
Выведите одно число: ответ на задачу, которую мама рассказала Максиму.
Примеры
Входные данные Выходные данные
1 27 27
2011#38238
Представьте число 2011 в виду суммы K последовательных простых чисел (то есть простых чисел, между которыми нет других простых чисел). Например, число 31 можно представить в виде суммы трех посдедовательных простых чисел следующим образом: 7 + 11 + 13 = 31.

Входные данные
Вводится одно натуральное число K (от 1 до 2011).

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

Если разложить в сумму K слагаемых невозможно, выведите NO SOLUTION (заглавными буквами).
Примеры
Входные данные Выходные данные
1 3 661 673 677
2 2 NO SOLUTION
Сколько всего натуральных чисел состоят из не менее чем a цифр и не более, чем b цифр?

Входные данные
Вводятся два произвольных натуральных числа a и b через пробел. Каждое не превышает 10000.

Выходные данные
Выведите одно число: количество чисел, обладающих указанным свойством.
Примеры
Входные данные Выходные данные
1 1 2 99
2 1 1 9
✓ 251✗ 1 661500лёгкаяВойти и решать
Дано N золотых слитков. Требуется распилить не более одного из них на две части (не обязательно равные, но с целой массой), после чего разделить слитки на две кучи равной массы.

Входные данные
В первой строке вводится одно натуральное число N, не превосходящее 100.

Во второй строке через пробел вводятся N натуральных чисел, не превосходящих 100 - массы имеющихся слитков.

Выходные данные
Выведите массы слитков, которые вошли в первую кучку (включая массу части распиленного слитка).

Если решений несколько, выведите любое из них.

Если решений нет, выведите фразу NO SOLUTION (заглавными буквами).

Выводить массы можно в произвольном порядке, но масса части распиленного слитка (если таковой имеется) должна быть последней.
Примеры
Входные данные Выходные данные
1 3
5 5 5
NO SOLUTION
2 4
1 2 3 8
1 2 3 1
Два автомобиля движутся по кольцевой дороге длины L в противоположных направлениях. Они начинают движение из одной точки и едут с постоянными скоростями v1 и v2 соответственно. Требуется определить, на каком расстоянии друг от друга они окажутся в момент времени T.

Входные данные
На вход подаются 4 натуральных числа L, v1, v2, T, разделенных пробелом. Все числа не превосходят 100.

Выходные данные
Выведите расстояние между автомобилями в момент времени T – длину кратчайшей из двух дуг дороги между автомобилями.
 
Входные данные Выходные данные
1 10 1 2 1 3
2 10 2 3 2 0
Два бегуна тренируются на кольцевой дорожке легкоатлетического стадиона длиной 400 метров. Они начинают бег из одной точки и бегают по заданиям тренера указанное число минут с указанной скоростью (под скоростью понимается количество метров, которое спортсмен пробегает по дорожке  за минуту). Требуется определить расстояние, на котором окажутся бегуны друг от друга в конце тренировки (расстоянием называется длина более короткой части дуги дорожки между спортсменами).

Входные данные
В первой строке вводится одно число – количество заданий, которые каждый спортсмен получил от тренера (оба спортсмена получают одинаковое количество заданий). В каждой из следующих строк записаны задания для спортсменов в следующем формате:

v1 t1 v2 t2

где v1 – скорость  первого игрока (в м/мин), t1 – время, на протяжении которого спортсмен должен бежать со скоростью v1; v2 и t2 – соответствующие величины для второго игрока. Скорости – положительные числа, если требуется бежать в направлении по часовой стрелке, и отрицательные, если требуется бежать против часовой стрелки.

Выходные данные
Выведите одно число – расстояние между бегунами в конце тренировки.
Примеры
Входные данные Выходные данные
1 2
8000 1 8000 1 
8000 10 8001 10 
10
2 1
50 4 -100 1
100
Натуральные числа записаны в (бесконечную) таблицу, как показано на рисунке.


Требуется по заданному числу вывести всех его соседей (числа, записанные в клетках сверху, справа, слева и снизу, если таковые имеются)

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

Выходные данные
Программа должна вывести все числа, записанные в соседних клетках с данным, в порядке возрастания. Числа должны разделяться пробелом.
Примеры
Входные данные Выходные данные
1 1 3
2 7 3 6 8 13
Решите в целых числах уравнение:

\( { \sqrt{ax +b}} = c\)

a, b, c – данные целые числа: найдите все решения или сообщите, что решений в целых числах нет.

Входные данные
Вводятся три числа a, b и c, разделенные пробелами.

Выходные данные
Программа должна вывести все решения уравнения в порядке возрастания, либо NO SOLUTION (заглавными буквами), если решений нет. Если решений бесконечно много, вывести MANY SOLUTIONS. 
Примеры
Входные данные Выходные данные
1 1 0 0 0
2 1 2 -3 NO SOLUTION
В книге на одной странице помещается K строк. Таким образом, на 1-й странице печатаются строки с 1-й по K-ю, на второй — с (K+1)-й по (2*K)-ю и т.д. Напишите программу, которая по номеру строки в тексте определяет номер страницы, на которой будет напечатана эта строка, и порядковый номер этой строки на странице.

Входные данные
Вводятся два числа: K - количество строк, которое печатается на странице, и N - номер строки (1<=K<=200, 1<=N<=20000).

Выходные данные
Выведите два числа - номер страницы, на которой будет напечатана эта строка, и номер строки на странице.
 
Примеры
Входные данные Выходные данные
1 50 1 1 1
2 20 25 2 5
3 15 43 3 13
С клавиатуры вводится трехзначное число. 
Напишите программу, которая выводит через пробел в одну строку:
сумму цифр числа и новое число, образованное перестановкой единиц и десятков
С клавиатуры вводится трехзначное число. 
Напишите программу, которая выводит через пробел в одну строку:
сумму цифр числа и новое число, образованное перестановкой единиц и десятков.

Пример входных и выходных данных.
Входные данные Выходные данные
365 14 356
Напишите программу, которая по заданным двум числам a и b, выводит на экран результат целочисленного деления и остаток, в заданном формате.

На вход программы подается два числа: a и b.
Необходимо вывести две строки:
в первой строке - результат целочисленного деления a на b.
во второй строке - остаток от деления a на b.

Пример.
Ввод Вывод
15
6
15/6=2
15%6=3

 
Напишите программу, которая по заданным двум числам a и b, выводит на экран результат целочисленного деления и остаток, в заданном формате (смотри примеры)

На вход программы подается два числа: a и b
Необходимо вывести две строки:
в первой строке - результат целочисленного деления a на b
во второй строке - остаток от деления a на b
Форма вывода смотри в примере входных и выходных значений

Пример входных и выходных данных
Входные данные
15 6
Выходные данные
15 div 6 = 2
15 mod 6 = 3
✓ 169✗ 1 042300лёгкаяВойти и решать
Поделиться
Класснуть