Циклы

71 задачавместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
По данному натуральному числу N найдите наименьшее натуральное число k, такое что сумма всех натуральных чисел от 1 до k (включительно) не меньше N

Формат входных данных
Во входной строке записано одно натуральное число N (N <= 109)

Формат выходных данных
Выведите одно число - искомое число k.

У исполнителя “Водолей” есть два сосуда, первый объемом A литров, второй объемом B литров, а также кран с водой. Водолей может выполнять следующие операции:

  1. Наполнить сосуд A (обозначается >A).
  2. Наполнить сосуд B (обозначается >B).
  3. Вылить воду из сосуда A (обозначается A>).
  4. Вылить воду из сосуда B (обозначается B>).
  5. Перелить воду из сосуда A в сосуд B (обозначается как A>B).
  6. Перелить воду из сосуда B в сосуд A (обозначается как B>A).

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



Входные данные
Программа получает на вход три натуральных числа A, B, N, не превосходящих 104.

Выходные данные

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

Количество операций в алгоритме не должно превышать 105. Гарантируется, что если задача имеет решение, то есть решение, которое содержит не более, чем 105 операций.

 
Примеры
Входные данные Выходные данные
1
3
5
1
>A
A>B
>A
A>B
2
3
5
6
Impossible
Вам даны два целых числа K и S. Три переменные X, Y и Z принимают целые значения, удовлетворяющие условию \(0<=X,Y,Z<=K\). Сколько существует различных значений X, Y и Z, таких что \(X+Y+Z=S\)?

Входные данные
На вход подается два целых числа K (\(2<=K<=2500\)) и (\(0<=S<=3\cdot K\)).

Выходные данные
Выведите количество троек X, Y и Z, удовлетворяющих условию.
 

 

Примеры
Входные данные Выходные данные Пояснения
1 2 2 6 Есть шесть троек X, Y и Z, которые удовлетворяют условию:
Х = 0, Y = 0, Z = 2
Х = 0, Y = 2, Z = 0
Х = 2, Y = 0, Z = 0
Х = 0, Y = 1, Z = 1
Х = 1, Y = 0, Z = 1
Х = 1, Y = 1, Z = 0
2 5 15 1 Лишь одна тройка удовлетворяют условию задачи:
Х = 5, Y = 5, Z = 5

 

В мире волшебников серебряный сикль равняется 29 бронзовым кнатам, а 17 сиклей равны 1 золотому галеону. В мире маглов галеон равен примерно 5 фунтам. Однако курс обмена может меняться.

Рон старался учить заклинания, но не всегда у него получалось то, что он хотел. Недавно он нашел новую игру «Казино волшебников». В этом казино играют на виртуальные сикли, а каждый раунд игры состоит в применении того или иного заклинания. Перед началом игры у Рона ноль сиклей на счету, но программа в любой момент предоставляет ему неограниченный кредит.

Перед началом каждого раунда программа сообщает, на какую тему будет очередное волшебное задание и Рон делает ставку на то, что он справится с заданием. В самом начале игры Рон всегда делает ставку в 1 сикль. Если Рон выполняет задание правильно, то он выигрывает раунд и ставка плюсуется к его счету. Если у него ничего не получилось, то он проигрывает, и ставка вычитается из его счета. Рон очень азартный, поэтому после проигрыша всегда увеличивает ставку в 2 раза. Однако после выигрыша, дабы не вспугнуть удачу, Рон всегда снижает ставку до 1 сикля. Наконец, одолев очередное задание, и выиграв этот раунд, Рон решает закончить игру.

Например, пусть Рон правильно выполнил первое задание (выиграл начальную ставку в 1 сикль, поставил на следующий раунд 1 сикль), затем не выполнил второе задание (проиграл 1 сикль и удвоил ставку), не справился с третьим заданием (проиграл 2 сикля и снова удвоил ставку), но четвертое задание ему все-таки удалось выполнить (выиграл 4 сикля, сбросил ставку на 1 сикль). Затем он правильно выполняет и пятое задание (выиграл 1 сикль) и заканчивает игру. Итого на его счету после игры: 1 – 1 – 2 + 4 + 1 = 3 сикля.

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

Входные данные: Первая строка содержит целое число N (0 < N ≤ 2000) — количество заданий, которое выполнил Рон. В следующих N строках располагаются числа 0 или 1 (по одному числу в строке): 1, если Рон выполнил очередное задание, и 0 – если не выполнил
Выходные данные: Выведите одно целое число — выигрыш или проигрыш Рона (выигрыш определяется положительным числом, а проигрыш – отрицательным).

Примеры
Входные данные Выходные данные
1 5
1
1
0
1
1
4
Запросите с клавиатуры 2 натуральных числа a и b (числа не больше 100). 
Каждое число вводится в отдельной строке.

Выведите все числа от a до b включительно. Если число кратно четырём, выведите через пробел после него слово "Такт!". В конце выведите "Привет!"
66174#66174
На стенде идет проверка нового оборудования. Установка включается на N минут. Каждую минут снимаются показания с датчика давления. Известно номинальное (нормальное) значение давления A, а также допустимое отклонение от него ε. Определите, сколько раз за время проверки отклонение от номинального значения A превысило значение ε.

Входные данные
На первой строке вводится A – вещественное число – номинальное значение давления.
На второй строке – ε – вещественное число – допустимое отклонение.
На третьей строке – N – натуральное число – время тестирования.
На последующих N строчках вводятся вещественные числа – показания датчика давления.
Все числа положительные и не превосходят 1 000 000.
Выходные данные
Количество недопустимых, т.е. превышающих ε, отклонений от номинального значения A за время проверки.
У Маши есть прямоугольная шоколадка, состоящая из m × n квадратных долек. Маша хочет разделить эту шоколадку между своими друзьями, разломив шоколадку по линиям на k кусочков, то есть каждому другу достанется прямоугольный кусочек шоколадки. У Юры сегодня день рождения, поэтому Маша хочет разделить шоколадку так, чтобы Юре достался самый большой кусок (содержащий как можно больше долек). Определите число долек в этом куске.

Формат входных данных
Программа получает на вход три натуральных числа, каждое в отдельной строке: m, n и k. Все числа — целые положительные, при этом m и n не превосходят 106 , а k ≤ mn.
Обратите внимание на то, что значение mn, а, значит, и значение k в этой задаче может превышать возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#).
Формат выходных данных
Программа должна вывести одно целое число — максимально возможное количество долек в том прямоугольном куске, который получит Юра.

Замечание
В примере из условия нужно разделить шоколадку 4 × 5 на 4 кусочка. Самый большой кусочек будет состоять из 16 долек, как показано на картинке.
 
✓ 19✗ 1711 100средняяВойти и решать
Красная Шапочка отправилась на болото для сбора клюквы, чтобы испечь пирожки для бабушки. Клюквенное болото представляет собой координатную прямую. Берег, на котором стоит девочка, имеет координату 0, а клюквенная поляна — координату N + 1. В точках с координатами 1, 2, . . . , N расположены кочки. Первоначально у девочки E единиц энергии. Красная Шапочка может прыгнуть из точки x в точку y (x < y), потратив на это (y − x) единиц энергии, то есть затраченная энергия равна расстоянию между кочками. После того, как девочка приземлится на кочке с координатой i, она получает ai единиц энергии (при этом значение ai может оказаться отрицательным, тогда энергия Красной Шапочки уменьшится при приземлении). Нельзя, чтобы энергия Красной Шапочки в какой-либо момент оказалась меньше нуля. Например, Красная Шапочка не может прыгнуть с кочки 1 на кочку 3, имея одну единицу энергии, вне зависимости от того, сколько энергии она получит на 3-й кочке, так как для осуществления такого прыжка необходимо две единицы энергии.
Так как Красной Шапочке ещё надо вернуться обратно, девочке интересно, какое максимальное количество энергии у неё может оказаться, когда она достигнет поляны (точки с координатой N +1).

Формат входных данных
Первая строка входных данных содержит целое число E — первоначальный запас энергии Красной Шапочки, 1 ≤ E ≤ 109 . Вторая строка входных данных содержит целое число N — количество кочек на болоте, 1 ≤ N ≤ 105 . Следующие N строк содержат по одному целому числу ai — энергия, которую получает Красная Шапочка на i-й кочке, −2000 ≤ ai ≤ 2000.
Формат выходных данных
Программа должна вывести одно число — максимальное количество единиц энергии, которое останется у Красной Шапочки после достижения клюквенной поляны. Если девочка не сможет достигнуть цели, выведите одно число «-1» (без кавычек).

Замечание
В первом примере три кочки и первоначально 2 единицы энергии у Красной Шапочки. Она прыгает на кочку 1, что требует 1 единицу энергии, и у неё остаётся 1 единица энергии. На кочке 1 девочка получает 1 единицу энергии, и у неё становится 2 единицы энергии. Затем она прыгает с кочки 1 на кочку 3, потратив 2 единицы энергии, и у неё становится 0 энергии. Приземлившись на кочку 3, Красная Шапочка получает 1 единицу энергии, этого достаточно, чтобы перепрыгнуть с кочки 3 на поляну в точке 4, после чего у Красной Шапочки останется 0 единиц энергии.
Во втором примере у Красной Шапочки первоначально только 1 единица энергии, поэтому она может прыгнуть только на кочку 1, но значение a1 = −1, то есть после приземления на кочку 1 у Красной Шапочки энергия станет отрицательной, и она не сможет продолжить свой путь.
✓ 11✗ 351 100средняяВойти и решать
Колоду карт раздают по кругу, по одной карте каждому за раз, пока колода не кончится. Известен порядок карт в колоде. С кого должен начинать сдающий, чтобы первый игрок получил себе как можно больше тузов?

Входные данные
В первой строке вводятся два числа: количество игроков и количество карт в колоде (оба числа натуральные и не превосходят 100, количество карт делится на количество игроков).

Во второй строке через пробел перечислены достоинства карт в том порядке, в котором они идут в колоде (6 – шестерка, 7 – семерка, 8 – восьмерка, 9 – девятка, 10 – десятка, 11 – валет, 12 – дама, 13 – король, 14 – туз). В колоде может быть произвольное число карт каждого достоинства.

Выходные данные
Выведите одно число – номер игрока, с которого следует начинать сдавать, чтобы первый игрок получил как можно больше тузов (игроки нумеруются числами 1, 2, 3, ...; сдача происходит по возрастанию номеров начиная с некоторого до последнего, и затем продолжается с первого). Если вариантов ответа несколько, выведите любой из них.
✓ 8✗ 2800средняяВойти и решать
Возьмем кубик и приклеим к его граням еще по такому же кубику. В результате получим фигуру, представленную на втором рисунке. К свободным граням полученной фигуры, приклеим еще кубики. На рисунке представлены "кубооктаэдры" степеней 0, 1, 2.

Кубооктаэдром степени N назовем фигуру, полученную в результате N-го доклеивания кубиков. Составить программу, подсчитывающую, количество кубиков для кубооктаэдра N-й степени.

Входные данные
Содержит единственное число - степень кубооктаэдра 0 <= N <= 100000

Выходные данные
Вывести одно число - количество кубиков для кубооктаэдра степени N.
Определите, сколько раз выполнится тело цикла, а также последнее число, которое будет выведено на экран в процессе выполнения программы. В ответе запишите два числа через пробел: сначала сколько раз выполнится цикл, затем последнее выведенное число. Если программа ничего не выводит на экран, то в вместо второго числа напишите слово None.
n = {1}
while n >= {2}:
    print(n)
    n = n - {3}
Определите, сколько раз выполнится тело цикла, а также последнее число, которое будет выведено на экран в процессе выполнения программы. В ответе запишите два числа через пробел: сначала сколько раз выполнится цикл, затем последнее выведенное число. Если программа ничего не выводит на экран, то в вместо второго числа напишите слово None.
n = {1}
while n < {2}:
    print(n)
    n = n + {3}
Громозека является одним из ведущих в Галактике космических археологов. Возвращаясь домой с очередной археологической экспедиции, он решил привезти своим четырем детям их любимые печенья. Ему осталось только вбить необходимое количество килограмм на экране терминала, и автомат сразу выдаст ему печенье . Но, вот незадача, на терминале сломались все кнопки с цифрами и буквами. Работают только цифры 0 и 1.  Громозека в задумчивости, как же ему заказать ровно n килограмм. Он придумал, что может сделать несколько заказов таким образом, чтобы каждый заказ мог состоять только из цифр 0 и 1. Вот только Громозека очень торопится, потому что до старта корабля осталось совсем немного времени. Помогите Громозеке определить минимальное число раз, которым ему придется воспользоваться автоматом, чтобы купить ровно n килограмм и порадовать своих детей! 

Например, чтобы купить 12 киллограмм печенья Громозека может воспользоваться автоматом дважды, купив сначала 11 килограмм печенья, затем - 1 килограмм.

Входные данные
Программа получает на вход целое число n (1 <= n <= 109).

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1
1234
4
В перерывах между отработкой заклинаний, Айвен любит лакомиться бобами. Бобы в волшебной школе имеют свою особенность. На каждом бобе написано некоторое целое число. Сегодня Айвен принес мешок, в котором лежит N бобов. Айвен хочет съесть только два боба, но такие чтобы произведение чисел, которые записаны на бобах было бы наименьшим среди всех пар бобов (пару образовывают любые два боба, лежащие в его мешке).
Определите это произведение.

Входные данные 
В первой строке вводится число N (2 ≤ N ≤105) - количество бобов в мешке Айвена, а затем N целых чисел, по одному в строке - числа, записанные на бобах, в том порядке, в котором их доставал Айвен (каждое число мо модулю не превосходит 40000).
 
Выходные данные 
Выведите ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 3
1
-3
2
-6
✓ 26✗ 159800средняяВойти и решать
Громозека считает натуральное число вкусным, если все его цифры различны и сумма цифр этого числа равна числу, написанному на печеньке, которую ест Громозека.
Сейчас Громозека ест печеньку, на которой написано число n. Помогите ему определить наименьшее вкусное число для такой печеньки.
Например, если n = 10, то наименьшее вкусное число 19 (1+9=10, все цифры числа 19 различные).

Входные данные
Программа получает на вход целое число n (1 <= n <= 45).

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 10 19
2 1 1
✓ 68✗ 314800средняяВойти и решать
Громозека и Алиса играют в следующую игру. Изначально, они ставят на числовую прямую три точки в целые координаты. Затем, один из них стирает любую крайнюю точку и ставит ее посередине между двумя оставшимися в координату с целым числом. Если между оставшимися точками четное количество целых чисел, то можно поставить точку в любую из них.

Например, если изначально стояли точки в координатах 3, 6, 8, то первым ходом можно стереть точку с координатой 3 и поставить ее в координату 7. Или стереть точку с координатой 8 и поставить ее в координату 4 или 5.

Чтобы долго не думать, Громозека и Алиса решили, что на каждый ход они будут тратить не более двух секунд.

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

Входные данные
Программа получает на вход три целых числа A, B и C (1<=A < B < C <= 1000). Каждое число записано с новый строки.

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 3
6
8
4
Питание школьника, при грамотной организации, должно обеспечивать содержание белков, жиров и углеводов в соотношении 10%:30%:60% (допускается погрешность +/- 1%). Детский лагерь составляет меню, состоящее из N различных продуктов. Для каждого продукта известна энергетическая ценность в белках (P), жирах (F) и углеводах (C), а также количество каждого вида продукта в меню (K).

Определите, является ли составленное меню сбалансированным или нет.


Входные данные
Программа получает на вход несколько строк. В первой строке записано число натуральное число N (N <= 100) количество различных продуктов. В каждой из следующих N строк записаны по 4 числа: Pi, Fi, Ci и Ki. Все числа вещественные, не превосходят 103.

Выходные данные
Выведите YES, если меню сбалансированное, и NO в противном случае. 
 
 
Примеры
Входные данные Выходные данные
1 3
0 1 1 2
1 2 7 1
3 7 13 1
YES
Для заданного натурального N найдите последнюю ненулевую цифру числа N!.

Входные данные
Программа получает на вход целое число (0 <= N <= 106).

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 8 2
2 10 8
По данному действительному числу a и натуральному n вычислите сумму \(1+a+a^2+...+a^n\), не используя формулу суммы геометрической прогрессии. Время работы программы должно быть пропорционально n.

Входные данные
Программа получает на вход два неотрицательных числа. В певрой строке записано действительное (вещественное) число a, во второй - целое число n.

Выходные данные
Выведите ответ на задачу. 
 
 
Примеры
Входные данные Выходные данные
1 2
2
7
Дано натуральное число A > 1. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число n, что fn=A. Если A не является числом Фибоначчи, выведите число -1.

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

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 8 6
2 10 -1
Поделиться
Класснуть