UVA не принимает мой код для «Самой большой / самой маленькой коробки»

Я пытался решить проблема «Самая большая / самая маленькая коробка (10215)» на сайте UVA, и вот мой код:

#include <iostream>
#include <algorithm>
#include <cmath>
#include <iomanip>
using namespace std;
double quadratic_solver(double a, double b, double c){
double sq, x1, x2, min;
sq = sqrt(b * b - 4 * a * c);
x1 = (-b + sq) / (2 * a);
x2 = (-b - sq) / (2 * a);
return (x2 > 0) ? x2 : x1;
}
int main(){
cout << setprecision(3) << fixed;
double l, w;
double least_vol,max_vol;
while (cin >> l >> w){
max_vol = quadratic_solver(12, -4 * w - 4 * l, l * w);
least_vol = min(l, w) / 2;
cout << max_vol << " 0.000 " << least_vol << endl;
}
return 0;
}

Что я в основном делаю:

Значение «x» для самого большого объема — это то, где наклон этой функции:

f (x) = (L — 2x) (W — 2x) x

0, поэтому 12 (x ^ 2) + x (-4W — L) + LW.

Это квадратичная функция, поэтому я решаю ее для х, и это будет «х» для самого большого объема.

Для минимального объема есть два ответа:

  1. х = 0 и

  2. Когда L — 2x или W — 2x — 0.

Мы не знаем, что ни L, ни W не являются отрицательными числами, поэтому x — это min (W, L) / 2 для наименьшего объема.

Хотя я использовал инструментарий UVA на веб-сайте, и мои ответы были правильными примерно для 20 случаев, когда я фактически представляю его, он говорит, что моя программа дает неправильный ответ.

Любая помощь?
Спасибо!

-3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …