Линейные алгоритмы

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

Определите минимальное количество символов в строке из круглых скобок, которые нужно заменить на противоположный ( левую скобку на правую, или наоборот) , чтобы получить сбалансированную строку.
Существует несколько способов определить сбалансированную строку скобок. Например, такой: В строке должно быть одинаковое количество левых и правых скобок, и для любого ее префикса количество левых скобок должно быть не меньше, чем количество правых скобок.
Например, эти строки - сбалансированные () (()) ()(()())
А эти - нет: )( ())( ((())))
PROBLEM NAME: clumsy
Формат входных данных
* Строка 1: строка из скобок длиной не более 100,000 символов.


Формат выходных данных
* Строка 1: Одно целое число - минимальное количество скобок, которые нужно "переключить" , чтобы конвертировать заданную строку в сбалансированную.


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

В городе проводится референдум. Известно общее число зарегистрированных избирателей. Для каждого избирателя известно, пришёл ли он на участок: 1 — пришёл, 0 — не пришёл.
Определите явку в процентах (округлить вниз до целого числа) и выведите, состоялся ли референдум (явка строго больше 50%).
 

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

Первая строка — целое число N (1 <= N <= 10000) — число зарегистрированных избирателей.
Каждая из следующих N строк содержит одно число (0 или 1).
 

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

Первая строка — явка в процентах (целое число, округлённое вниз).
Вторая строка — YES, если референдум состоялся, NO иначе.
В университетской столовой осталось K порций борща. В очереди стоят студенты, каждый хочет съесть определённое количество порций (голодные студенты бывают!).

Студент подходит к раздаче:
- Если борща хватает на его запрос - он получает всё и уходит СЧАСТЛИВЫМ
- Если борща осталось меньше, но хоть что-то есть - забирает остатки и уходит ГОЛОДНЫМ  
- Если борща совсем нет - уходит ЗЛЫМ

После обслуживания всех студентов повар хочет знать:
1. Сколько студентов ушли СЧАСТЛИВЫМИ
2. Сколько студентов ушли ГОЛОДНЫМИ
3. Сколько студентов ушли ЗЛЫМИ
4. Сколько порций борща осталось

Пояснение к примеру
- Было 10 порций
- Студент 1 хочет 3: получает 3, осталось 7 (СЧАСТЛИВ)
- Студент 2 хочет 5: получает 5, осталось 2 (СЧАСТЛИВ)  
- Студент 3 хочет 4: получает только 2, осталось 0 (ГОЛОДЕН)
- Студент 4 хочет 2: борща нет (ЗОЛ)
- Итого: 2 счастливых, 1 голодный, 1 злой, 0 остаток

 

Матроскин украшает окно к Новому году. Окно представляет собой сетку N×M клеток. Он хочет нарисовать рамку по периметру окна (все крайние клетки) специальной краской. Сколько клеток нужно закрасить?

Входные данные: Два целых числа N и M (1 ≤ N, M ≤ 1000) — размеры окна. Каждое число записано в отдельной строке.

Выходные данные: Количество клеток в рамке.

Почтальон Печкин принёс в Простоквашино ёлку высотой H сантиметров. Каждый день ёлка осыпается и становится ниже на D сантиметров, но не может стать ниже нуля. Новый год наступит через N дней.

Какой высоты будет ёлка в новогоднюю ночь (после N дней осыпания)?

Входные данные: Три целых числа H, D, N (1 ≤ H ≤ 1000, 1 ≤ D ≤ 100, 1 ≤ N ≤ 100). Каждое число записано в отдельной строке.

Выходные данные: Высота ёлки в новогоднюю ночь.

Галчонок выучил N не обязательно разных слов и говорит их по очереди, повторяя циклически. Матроскин хочет узнать, сколько раз за день Галчонок скажет слово «kto-tam», если всего за день он произносит K слов.

Входные данные: В первой строке число N, во второй число K (1 ≤ N ≤ 100, 1 ≤ K ≤ 109) — количество слов, которые повторяет Галчонок и общее количество произнесённых слов. В следующих N строках записаны слова Галчонка в том порядке, как он их повторяет (строки состоят из маленьких латинских букв и дефисов, длиной до 20 символов).

Выходные данные: Сколько раз Галчонок скажет «kto-tam».

Матроскин готовит бутерброды для новогоднего стола. У него есть N кусков хлеба и M кусков колбасы. На каждый бутерброд нужен один кусок хлеба и два куска колбасы. Сколько бутербродов сможет приготовить Матроскин?

Входные данные: Два целых числа N и M (0 ≤ N, M ≤ 1000) — количество кусков хлеба и колбасы.  Каждое число записано в отдельной строке.

Выходные данные: Одно число — максимальное количество бутербродов.

Печка в Простоквашино работает интересно: каждый час она повышает температуру в доме на A градусов, но из-за щелей в стенах за тот же час уходит B градусов тепла. Сейчас в доме T градусов.

Матроскин считает, что комфортная температура — не меньше C градусов. Определите, будет ли в доме когда-нибудь комфортно, и если да — через сколько полных часов.

Входные данные: Четыре целых числа T, A, B, C (−50 ≤ T ≤ 50, 1 ≤ A ≤ 10, 1 ≤ B ≤ 10, 1 ≤ C ≤ 50) — начальная температура, прирост от печки, потери тепла и желаемая температура. Каждое число вводится в отдельной строке.

Выходные данные: Число часов до достижения комфортной температуры, или «Никогда», если температура не достигнет нужной.

Мама прислала Дяде Фёдору посылку с конфетами. Дядя Фёдор хочет разделить конфеты поровну между собой, Матроскиным и Шариком. Если конфеты не делятся на троих поровну, остаток достанется Галчонку.

Сколько конфет получит каждый из троих друзей, и сколько останется Галчонку?

Входные данные: Одно целое число N (1 ≤ N ≤ 10000) — количество конфет в посылке.

Выходные данные: Два числа через пробел: сколько конфет получит каждый из друзей и сколько достанется Галчонку.

Кот Матроскин заготавливает дрова на зиму. Печка Галчонка потребляет ровно K поленьев в день. Матроскин заготовил N поленьев и хочет узнать, на сколько полных дней хватит дров.

Входные данные: Вводятся два целых числа N и K (1 ≤ N ≤ 10000, 1 ≤ K ≤ 100) — количество заготовленных поленьев и дневной расход. Каждое число записано в отдельной строке.

Выходные данные: Одно число — количество полных дней, на которые хватит дров.

Дядя Фёдор решил написать письмо Деду Морозу. Он знает, что письмо дойдёт быстрее, если в нём чётное количество слов — так устроена волшебная почта. Шарик подсказал, что если слов нечётное, можно дописать в конце слово «Пожалуйста».

Дядя Фёдор написал письмо и хочет понять: нужно ли дописывать слово или письмо уже готово к отправке?

Входные данные: В первой строке одно целое число N (1 ≤ N ≤ 100) — количество слов в письме.

Выходные данные: Выведите «Готово», если письмо можно отправлять, или «Дописать», если нужно добавить слово.

Нарисуйте лесенку из трёх ступенек

  • Начинаем в (0, 0).
  • Черепашка последовательно идёт: вперед 30, поворот налево, вверх 20, поворот направо, повторить три раза.
  • Горизонтальная часть лесенки должна быть толщиной 5 точек, вертикальная - 3 точки
     
Н#80683

Нарисуйте букву "H" из трёх линий

  • Начальная точка: (0, 0)

  • Черепашка идёт вверх 100 (левая вертикаль), затем перемещается в (0, 50) без рисования,

  • Рисует горизонтальную линию вправо 50 (перекладина),

  • Перемещается в (50, 0) без рисования,

  • Рисует вертикаль вверх 100 (правая).

Буква должна состоять ровно из трех линий!

L#80682

Нарисуйте букву "L"

  • Начало в (0, 0), перо опущено.
  • Из начально точки черепашка рисует линии в следующей последовательности:
    - Вниз 100 пикселей.
    - Вправо 50 пикселей.
Не используйте команду goto(). 

Робот стоит на ступеньке номер X и должен добраться до ступеньки номер Y. Он может прыгать только на Z ступенек вниз за раз. Напишите программу, которая выводит номер ступеньки после каждого прыжка (если робот не может добраться точно до Y, он останавливается на ближайшей возможной ступеньке).

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

  • X — начальная ступенька - целое число не больше 100

  • Y — целевая ступенька - целое число не больше 10

  • Z — размер прыжка - целое число не больше 10
    Каждое число в отдельной строке.

Выходные данные: номер ступеньки после каждого прыжка (каждое число на новой строке)

Дано количество целых чисел \(n\). Далее в \(n\) строках вводятся целые числа (обозначим их как \(x\)).

Для каждого введённого числа \(x\) необходимо вычислить значение кусочной функции:
$$f(x) = \begin{cases}
(x + 3)^2 - 10, & \text{если } x < -1 \\
-x^2 + 6x - 5, & \text{если } -1 \leq x \leq 5 \\
|x - 8| + 2, & \text{если } x > 5
\end{cases}$$
Найти минимальное значение функции \(f(x)\) среди всех введённых чисел.

Формат входных данных:
Первая строка: \(n\) (\(1 \leq n \leq 100\)). 
Следующие \(n\) строк: целые числа (\(x\)). Каждое число по модулю не превышает по модулю 105.

Формат выходных данных
Два числа через пробел: значение \(x\) и минимальное значение \(f(x)\).

Макс купил премиум-подписку в Roblox и получил Y робуксов. Каждый день он тратит ровно X робуксов на скины и улучшения, если у него есть такая возможность. Напишите программу, которая выводит остаток робуксов на конец каждого дня, пока у него не закончатся робуксы (станет меньше X).​

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

  • X — робуксов тратит в день

  • Y — начальное количество робуксов

Выходные данные: остаток робуксов на конец каждого дня (каждое число на новой строке)

Поделиться
Класснуть