Похоже на задачу о рюкзаке.
Решается полным перебором.
Вручную ответ: 45 90 телят, 10 1 бык, 45 9 коров.
Берётся начальное максимальное число телят, 100 телят.
Убирается по десять телят, вычитая суммы.
Оставшуюся сумму пытаться раскидать по быкам и коровам.
for (b=1;;b++){ // число быков
for (k=1;;k++){ // число коров
for(t=1; ;t++){ // число телят
sum = b*10 + k*5 + t*(0,5);
if (sum== 100){ goto end;}
sum=0;
}}}
end:
return;
Теория задачи о рюкзаке
Постановка задачи
https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D1%80%D1%8E%D0%BA%D0%B7%D0%B0%D0%BA%D0%B5 Исходные коды и примеры
https://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D1%80%D1%8E%D0%BA%D0%B7%D0%B0%D0%BA%D0%B5