Top.Mail.Ru
Ответы

ПОМОГИТЕ РЕШИТЬ ЗАДАЧУ ИНФОРМАТИКА ОЛИМПИАДА

Язык кода: C#
Прошу побыстрее, это очень важно

По дате
По рейтингу
Аватар пользователя
Новичок
6мес

Я, конечно, не знаток сишарпа, и может, это выглядит по-ламерски, но должно работать:

12345678
 using System;
class HelloWorld {
    static void Main() {
        uint[] nums = Array.ConvertAll(Console.ReadLine().Split(), uint.Parse);
        uint d = (nums[0] + nums[1] + nums[2] - 1) / nums[2];
        Console.WriteLine(nums[1] < d ? -1 : (int)d);
    }
} 


Вычисляем минимально необходимое количество ящиков D как частное от деления (N + M) на K с округлением вверх. Если свёкл (M) меньше, чем D, то во все ящики положить по свёкле не получится, и результат -1, а иначе D.

N, M, K храним в массиве, в таком порядке. Лень разбираться, как это распаковать в переменные покрасивше.

Простая задача, мог бы и сам решить.

А это для питонистов, бонус-трэком:

123
 n, m, k = map(int, input().split())
d = (n + m + k - 1) // k
print(-1 if m < d else d)