Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Сдать решение задачи A-Нарезка сосисок
- Полный балл: 100
- Бонусные баллы:
- Имя входного файла: in.txt или стандартный поток ввода
- Имя выходного файла: out.txt или стандартный поток вывода
- Ограничение времени: 1 с
- Ограничение памяти: 256M
- Нарезка сосисок
- На олимпиаду приехало m участников. Организаторы приготовили n сосисок на обед и их необходимо нарезать на кусочки так, чтобы суммарная длина кусочков, которые достанутся каждому участнику, была максимальна и одинакова. Одним разрезом можно разрезать только одну сосиску.
- Определите минимальное суммарное количество разрезов, которые необходимо сделать.
- Формат входных данных
- В единственной строке входных данных вводятся два числа n, m (1 ≤ n, m ≤ 100).
- Формат результата
- Выведите минимальное суммарное количество разрезов.
- Примеры
- Входные данные
- 3 4
- Результат работы
- 3
- Входные данные
- 4 8
- Результат работы
- 4
- Входные данные
- 8 2
- Результат работы
- 0
- Примечания
- В первом примере нужно можно отрезать от каждой сосиски 3/4 её длины и дать эти кусочки первым трём участникам. Оставшийся участник получит 3 четвертинки сосиски.
- Во втором примере достаточно разрезать каждую сосиску пополам и каждый участник получит по половине сосиски.
- В третьем примере разрезы не нужны, участники получат по четыре сосиски.*/
- #include<iostream>
- #include<fstream>
- #include<vector>
- #include<stdint.h>
- #define all(container) container.begin(), container.end()
- #define fors(counter, start, finish) for (int counter = start; counter < finish; ++counter)
- #define forb(counter, start, finish) for (int counter = start; counter >= finish; --counter)
- #define vec(type) std::vector<type>
- #define dvec(type) std::vector<std::vector<type>>
- //#define fin std::cin
- int main() {
- std::ifstream fin("in.txt");
- int n, m;
- fin >> n >> m;
- if (n % m == 0) {
- std::cout << 0;
- }
- else {
- n -= n / m * m;
- double x = n, y = m;
- double temp = x / y, res = 0;
- int ans = 0, k;
- while (res < n) {
- res += temp;
- int k = res;
- if (k != res)
- ans++;
- }
- std::cout << (res > n ? ans - 2 : ans);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment