Тренировочные задания

Подборка из нескольких задач по информатике.

Содержание



Перемены

Требуется подсчитать, на сколько раньше будет заканчиваться k-й урок, если все перемены сократить на 5 минут.

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

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

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

Пример входных и выходных данных

input.txt output.txt
3 10


СтатГрад

В Лисичанске установили счетчики системы СтатГрад для учета и контроля над силой града. Каждый счетчик системы учитывает количество попаданий в него градин за сутки. Если в него попадает меньше a градин, то он передает сигнал NO GRAD. Если попадает не меньше a градин, но меньше b градин, то он передает сигнал GRAD. Если больше либо равно b градин — то он ломается, и не передает никакого сигнала.

Даны числа a и b (aВходные данные

Вводятся три натуральных числа, не превосходящих 1000: a, b и количество градин. Числа разделены пробелом.

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

Выведите либо NO GRAD, либо GRAD, либо не выводите ничего.

Пример входных и выходных данных

input.txt output.txt
10 20 15 GRAD
input.txt output.txt
10 20 5 NO GRAD
input.txt output.txt
10 20 30


Метро

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

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

Станции пронумерованы подряд натуральными числами 1, 2, 3, …, N (1-я станция – соседняя с N-й), N не превосходит 100.

Вводятся три числа: сначала N – общее количество станций кольцевой линии, а затем i и j – номера станции, на которой Витя садится, и станции, на которой он должен выйти. Числа i и j не совпадают. Все числа разделены пробелом.

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

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

Пример входных и выходных данных

input.txt output.txt
100 5 6 0

На кольцевой линии 100 станций; проехать с 5-й на 6-ю станцию Витя может напрямую, без промежуточных станций.

input.txt output.txt
10 1 9 1

На кольцевой линии 10 станций; проехать с 1-й на 9-ю станцию Витя может через одну промежуточную, ее номер 10.




Количество слов

На вход программы поступает строка текста, в которой могут встречаться:

  • прописные и строчные (т.е. большие и маленькие) латинские буквы;
  • пробелы;
  • знаки препинания: точка, запятая, восклицательный и вопросительный знак;
  • символ —, обозначающий в некоторых случаях тире, а в некоторых дефис.

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

Напишите программу, определяющую, сколько слов в данной строке текста.

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

Вводится строка длиной не более 200 символов.

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

Выведите одно число количество слов, которые содержатся в исходной строке.

Пример входных и выходных данных

input.txt output.txt
Hello , world! 2
input.txt output.txt
www.olympiads.ru 3
input.txt output.txt
Gyro-compass — this is a … 4

Выборы

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

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

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

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

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

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

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

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

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

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

Пример входных и выходных данных

input.txt output.txt
3 4
+ — —
+ — —
— + —
+ — +
1 2
input.txt output.txt
1 5
+



1


Распродажа

Магазины в рекламных целях часто устраивают распродажи. Так, например, одна из крупных сетей магазинов канцелярских товаров объявила два рекламных предложения: «Купи N одинаковых товаров и получи еще один товар бесплатно» и «Купи K товаров по цене K-1 товара».

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

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

Во входном файле записаны целые числа N, K, A и B (1≤N≤100, 2≤K≤100, 1≤A≤10000, 1≤B≤10000), разделенные пробелами.

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

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

Пример входных и выходных данных

input.txt output.txt
4 4 13 2 8

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

input.txt output.txt
3 4 8 3 2

Во втором примере рекламными предложениями воспользоваться нельзя.

input.txt output.txt
3 4 7 1 9

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



Гость из прошлого

Коля Герасимов очень любит кефир, и в своём 1984 году он освоил все тонкости покупки этого чудесного напитка. Но однажды, как вам, наверное, известно, он попал в далёкий 2084 год, где покупка кефира представляет собой более сложный процесс.

Будущее будущим, а кушать хочется всегда, поэтому Коля отправился в местную молочную лавку. В 2084 году кефир продают в литровых пластиковых бутылках по a копеек за штуку и в литровых бутылках из стекла по b копеек за штуку. При этом пустую стеклянную бутылку можно сдать и получить назад c (cn копеек, и он очень голоден, поэтому хочет выпить как можно больше литров кефира. Так как в его время не было пластиковых бутылок, он совсем не знает, как действовать. Поэтому он обратился за помощью к вам, как к единственному знакомому в будущем.

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

В первой строке входных данных задаётся число n (1≤n≤1018) — количество копеек у Коли в кармане.

В строках со второй по четвертую по одному записаны числа a, b и c (1≤a≤1018, 1≤c<b≤1018) — стоимость пластиковой бутылки с кефиром, стоимость стеклянной бутылки с кефиром и сколько копеек можно получить, сдав пустую стеклянную бутылку, соответственно.

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

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

Пример входных и выходных данных

input.txt output.txt
10
11
9
8
2

В первом примере Коля может купить один литр в стеклянной бутылке, затем сдать эту бутылку и снова купить стеклянную бутылку. Таким образом, он сможет выпить два литра кефира.

input.txt output.txt
10
5
6
1
2

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


Оставить комментарий