e-olymp 949. Двузначное из четырёхзначного

Задача

Из заданного четырёхзначного натурального числа образовать двузначное, состоящее из его средних цифр.

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

Одно четырёхзначное натуральное число.

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

Полученное двузначное число.

Тесты

# Входные данные Выходные данные
1 4765 76
2 7999 99
3 2514 51
4 9423 42
5 8234 23

 

Код программы

Решение задачи

Первым делом мы используем деление на 10 с присваиванием, чтобы избавиться от последней цифры числа. Дальше используем остаток от деления на 100, чтобы избавиться от первой цифры числа.

Ссылки

Задача на сайте e-olymp

Код решения Ideone

e-olymp 1474. Сломанные часы

Задача

В электронных часах произошел сбой, и теперь каждую секунду увеличивается не счетчик секунд, а счетчик часов. При переполнении счетчика часов (то есть при достижении [latex]24[/latex]) он сбрасывается в [latex]0[/latex] и увеличивается счетчик минут. Аналогично, при переполнении счетчика минут происходит его сброс и увеличивается счетчик секунд. При переполнении счетчика секунд он также сбрасывается в [latex]0[/latex], а остальные счетчики так и остаются равными [latex]0[/latex]. Известно, что сбой произошел в [latex]h_1[/latex] часов [latex]m_1[/latex] минут [latex]s_1[/latex] секунд. В этот момент часы показывали правильное время.

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

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

В первой строке задаются три целых числа [latex]h_1[/latex], [latex]m_1[/latex], [latex]s_1[/latex], определяющие время поломки часов. Во второй строке записаны три числа [latex]h_2[/latex], [latex]m_2[/latex], [latex]s_2[/latex], которые определяют показания часов в текущий момент времени ( [latex]0\;\le\;h_1,\;h_2\;\lt\;24[/latex], [latex]0\;\le m_1,\;m_2,\;s_1,\;s_2\;\lt\;60[/latex] ).

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

В единственной строке выведите правильное время (т.е. число часов, минут и секунд) в момент, когда сломанные часы будут показывать [latex]h_2[/latex] часов [latex]m_2[/latex] минут [latex]s_2[/latex] секунд.

Тесты

Входные данные Выходные данные
[latex]12 \; 0 \; 0\\12 \; 1 \; 0[/latex] [latex]12 \; 0 \; 24[/latex]
[latex]13 \; 59 \; 59\\12 \; 59 \; 59[/latex] [latex]13 \; 59 \; 58[/latex]
[latex]15 \; 12 \; 16\\15 \; 12 \; 16[/latex] [latex]15 \; 12 \; 16[/latex]
[latex]\;0 \;\;\; 0 \;\;\; 0\\23 \; 59 \; 59[/latex] [latex]23 \; 59 \; 59[/latex]
[latex]16 \; 0 \; 17\\16 \; 0 \; 18[/latex] [latex]16 \; 24 \;17[/latex]
[latex]11 \;\; 0 \;\; 53\\0 \;\;\; 0 \;\;\; 0[/latex] [latex]13 \; 48 \; 42[/latex]
[latex]1 \;\; 13 \; 18\\22 \; 51 \; 32[/latex] [latex]7 \;\;\; 4 \;\;\; 51[/latex]

Код программы

 

Решение

Учитывая особенности хода сломанных часов, подсчитаем количество секунд в начальный и конечный моменты времени ( sum1 и sum2). Вычислим, сколько секунд прошло с момента поломки часов — для этого найдём разность sum2 - sum1, прибавим [latex]86400[/latex] —  количество секунд в сутках (поскольку мог произойти переход через момент времени [latex]0 \; : \; 0 \; : \; 0[/latex]) и найдём остаток от деления полученной суммы на [latex]86400[/latex].

Теперь найдём количество секунд, прошедших с начала суток, в которых поломались часы ( time1). Прибавим к нему количество секунд, прошедших с момента поломки часов и найдём остаток от деления на [latex]86400[/latex] полученного числа. Имеем time2 — правильное время в секундах. Далее, находим значения счётчиков часов [latex]h_3[/latex], минут [latex]m_3[/latex] и секунд [latex]s_3[/latex] которые соответствуют моменту времени time2.

Ссылки

Условия задачи на e-olymp
Код задачи на ideone

e-olymp 7365. Молоко и пирожок

Задача

Ученикам первого класса дополнительно дают стакан молока и пирожок, если вес первоклассника менее [latex]30[/latex] кг. В первых классах школы учится [latex]n[/latex] учеников. Стакан молока имеет емкость [latex]200[/latex] мл, а упаковки молока – [latex]0,9[/latex] л. Определить количество дополнительных пакетов молока и пирожков, необходимых каждый день.

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

В первой строке задано целое число [latex]n[/latex] [latex](0 < n ≤ 100)[/latex]. В следующей строке идут [latex]n[/latex] положительных действительных чисел – массы первоклассников.

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

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

Тесты

# Входные данные Выходные данные
1 4 30 36 29 47 1 1
2 5 30 36 29 47 26 1 2
3 8 30 36 29 47 26 27 30 31 1 3
4 1 29 1 1
5 5 26 27 28 29 25 2 5

Код программы

Решение задачи

По условию задачи мы должны узнать сколько нужно упаковок молока и штук пирожков для детей.Для пирожков мы заводим счетчик, который увеличивает на единицу, если появился подходящий ребенок.А для молока будем использовать целые числа (0,2 домножим на 10 и 0,9 также домножим на 10).И будем считать сколько всего тратится молока,затем поделим на 9 и узнаем сколько пачек молока нужно,так как могут быть на выходе не целые числа,то округляем вверх.

Ссылки

Ссылка на e-olymp
Ссылка на ideone

e-olymp 7366. Сколько до Нового Года?

Задача

У Деда Мороза есть часы, которые в секундах показывают сколько осталось до каждого Нового Года. Так как Дед Мороз уже человек в возрасте, то некоторые математические операции он быстро выполнять не в состоянии. Помогите Деду Морозу определить сколько полных дней, часов, минут и секунд осталось до следующего Нового Года, если известно сколько осталось секунд, т.е. разложите время в секундах на полное количество дней, часов, минут и секунд.

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

В единственной строке целое число [latex]N \left(0 < N ≤ 31500000\right)[/latex] – количество секунд, которые остались до наступления Нового Года.

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

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

Тесты

# Входные данные Выходные данные
1 5217656 60 9 20 56
2 7999 0 2 13 19
3 30123456 348 15 37 36
4 7841186 90 18 6 26
5 899650 10 9 54 10

Код

Решение задачи

Вспомним, что:
1 сутки = 86400с;
1 час = 3600с;
1 минута = 60с.

Сперва рассчитаем кол-во полных суток в данном кол-ве секунд [latex]n[/latex]: [latex]\frac{n}{86400}[/latex].
Затем уберём кол-во секунд в полных сутках из исходного числа, а из оставшихся вычислим кол-во полных часов: [latex]\frac{n\bmod86400}{3600}[/latex].
Далее снова уберём кол-во секунд в полных часах и найдём кол-во полных минут: [latex]\frac{\left(n\bmod8640\right)\bmod3600}{60}[/latex].
Остаток от деления общего кол-ва секунд на 60 и будет искомым кол-вом секунд: [latex]n\bmod60[/latex].

Ссылки

Условие задачи на e-olymp
Код решения на ideone

e-olymp 2803 МаркЕрованные кубики

Задача

У Витека есть набор кубиков, на котором изображены английские буквы, причём как маленькие, так и большие. Недавно мама подарила ему ещё и набор кубиков с цифрами, в результате чего Витек научился быстро считать в пределах 10-ти. А вот папа имел неосторожность подарить ему набор разноцветных маркеров, после чего Витек начал экспериментировать с кубиками с цифрами: он зарисовывал очередную цифру и на её месте рисовал цифру на единицу большую. Так как он прекрасно понимал, что цифры 10 не существует, он вместо числа 10 всегда писал цифру 0.

Учтите, что иногда мама звала Витека покушать и он не успевал завершить начатую работу и написать новую цифру – в этом случае кубик навсегда оставался пустым, такие кубики обозначены символом пробела.

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

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

Единственная строка, состоящая из описанных выше символов. Длина строки не превышает 255 символов.

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

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

Тесты

Входные данные Выходные данные
abc1234567890ABC abc2345678901ABC
00000000 11111111
546476756 657587867

 

Алгоритм решения

Проверяем, является ли элемент строки числом. Если это 9, заменяем ее на 1, иначе увеличиваем значение символа на 1.

 

Ссылка на задачу на е-олимпе

Ссылка на засчитанное решение

Ссылка на среду с кодом

Решение через c-like string

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

Cсылка на засчитанное решение с помощью c-like string

Ссылка на код в среде ideone