e-olymp 8287. Петро підприємець

Задача

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

В голові приватного підприємця виникла ідея зробити асорті (змішати два види цукерок — популярні і не популярні). Взявши різну масу кожного виду цукерок Петро отримав асорті вартість [latex]1[/latex] кг якого [latex]A[/latex] грн.

Знаючи, що популярні цукерки коштують [latex]P[/latex] грн/кг а не популярні [latex]N[/latex] грн/кг, а також значення [latex]А[/latex], знайдіть скільки грам популярних цукерок в асорті.

Вихідні дані

Три дійсних числа [latex]P[/latex], [latex]N[/latex], [latex]А[/latex] ціна [latex]1[/latex] кг різних видів цукерок, що входять до складу асорті, та ціна асорті.

Вхідні дані

Одне дійсне число округлене до десятих — кількість грамів популярних цукерок в асорті, або [latex]-1[/latex] якщо визначити не можливо.

Тести

# вхідні дані вихідні дані
1 100 50 75 500.00
2 100 100 5 -1
3 50 25 20 -1
4 50 30 30 0.0

Код програми

Рішення завдання

За умовою завдання у нас єдине невідоме це кількість популярних цукерок в асорті. 1 кг = 1000 г. Таким чином складаємо рівняння з одним невідомим і отримуємо [latex]1000(A-N) / (P-N)[/latex].

Посилання

Посилання на e-olymp
Посилання на ideone

e-olymp 5868. A xor B

Задача

На стандартный вход подаются 2 натуральных числа [latex]A[/latex] и [latex]B[/latex]. Выведите на стандартный вывод результат применения к ним операции побитового исключающего или.

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

2 натуральных числа [latex]A, B ≤ 10^9[/latex] в десятичной системе счисления, разделённые пробелом.

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

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

Тесты

# Входные данные Выходные данные
1 3 7 4
2 12 11 7
3 15 9 6
4 8 10 2
5 10 10 0

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

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

Введем два числа и применим операцию исключающего или.В языке программирования С++ данная операция выглядим так как показано в коде программы.

Ссылки

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 442. Построения

Задача

Построение
Иван Петрович преподает в школе физкультуру, но интересуется также математикой, в основном, с практической точки зрения. Например, его интересует вопрос, сколько различных построений существует для группы из [latex]N[/latex] человек. Иван Петрович выяснил, что если [latex]N[/latex]– простое число, то получается только [latex]2[/latex] построения: в колонну по одному ([latex]1[/latex]×[latex]N[/latex]) и в шеренгу ([latex]N×1[/latex]). Эти тривиальные построения возможны для любого [latex]N[/latex]  > [latex]1[/latex] (для [latex]N = 1[/latex] существует только одно построение ([latex]1×1[/latex]), которое не является ни шеренгой, ни колонной). Если [latex]N[/latex] – составное число, то существует и другие нетривиальные построения. Для [latex]100[/latex] человек существует девять построений: ([latex]1×100[/latex]), ([latex]2×50[/latex]), ([latex]4×25[/latex]), ([latex]5×20[/latex]), ([latex]10×10[/latex]), ([latex]20×5[/latex]), ([latex]25×4[/latex]), ([latex]50×2[/latex]) и ([latex]100×1[/latex]).

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

В первой строке ввода содержится одно целое число [latex]N[/latex] (1  ≤[latex]N[/latex]≤  109).

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

Вывести одно целое число – количество различных построений для группы из [latex]N[/latex] человек.

Тесты

# Входные данные Выходные данные
1 100 9
2 1 1
3 6 4
4 999983 2
5 2 2

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

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

По условию задачи требуется найти все возможные построения. Это значит, что мы должны найти все возможные варианты разбиения числа на множители. Для этого можно обойтись перебором всех делителей числа от 1 до корня из этого числа, а затем умножить полученное значение на 2 так как для нас имеет значение порядок делителей. Если корень из числа есть делитель данного числа то увеличиваем счетчик на 1.

Ссылки

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