Небольшое наблюдение: если Денис может использовать ровно 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;
}
uses Crt; {подключаемый модуль}
var a, b, alfa: real; {переменные: стороны и угол при основании трапеции}
h, S: real; {переменные: высота и площадь}
begin {начало}
ClrScr; {очистка экрана}
repeat {цикл ввода}
Write (' alfa (w grad) = '); {ввод угла}
ReadLn(alfa);
Write (' a = '); ReadLn(a); {ввод большей стороны}
Write (' b = '); ReadLn(b); {ввод меньшей стороны}
until (a>b) and (alfa<>90) ; {контроль за вводом: надо а>b и alfa<>90}
alfa:=alfa*pi/180; {перевод в радианы}
h:=(a-b)/2*sin(alfa)/cos(alfa); {вычисление высоты}
S:=(a+b)*h/2; {вычисление площади}
WriteLn(' S = ', S:6:2); {вывод результата}
ReadLn; {ожидание нажатия ENTER}
end. {конец}