Предмет: Информатика, автор: Аноним

Денис тоже решил заняться производством и продажей спиннеров, но он считает, что у спиннера может быть только три или четыре лопасти. У него есть ровно M лопастей, которые он может прикреплять к основаниям, и неограниченный запас оснований. Он хочет изготовить несколько трехлопастных и четырехлопастных спиннеров так, чтобы использовать все M лопастей. Определите, сколько спиннеров каждого вида он должен произвести.
Программа получает на вход одно целое положительное число М,не превосходящее 2•10(9), — количество лопастей, которое есть у Дениса.
Программа должна вывести два целых числа — количество спиннеров с 3 лопастями и количество спиннеров 4 лопастями, которое должен произвести Денис. Если у задачи есть несколько решений, нужно вывести любое из них. Если Денис не может использовать ровно М лопастей для производства спиннеров, программа должна вывести два числа 0.

Ответы

Автор ответа: nelle987
0

Небольшое наблюдение: если Денис может использовать ровно M лопастей, то он может использовать их так, чтобы четырёхлопастных спиннеров было не больше двух. (Если их три или больше, то каждые три четырёхлопастных спиннера можно поменять на 4 трёхлопастных).

Код (C++)
#include <iostream>
int main() {
    long long M;
    std::cin >> M;
    for (int f = 0; f < 3 && f * 4 <= M; f++) {
        if ((M - f * 4) % 3 == 0) {
            std::cout << (M - f * 4) / 3 << " " << f;
            return 0;
        }
    }
    std::cout << "0 0";
    return 0;
}

Похожие вопросы
Предмет: Русский язык, автор: milenaargunova