Cześć, w jakimkolwiek kompilatorze wszystko mi działa jak powinno przykładowe wejściowe zwracają przykładowe wyjściowe. Niestety SPOJ wywala błąd SIGABRT i nie mam pojęcia co jest nie tak
#include <iostream>
#include <cmath>
using namespace std;
const int MAX_DEGREE = 10;
const double EPS = 1e-10;
int degree;
double coeffs[MAX_DEGREE + 1];
double f(double x) {
double result = coeffs[degree];
for (int i = degree - 1; i >= 0; i--) {
result = result * x + coeffs[i];
}
return result;
}
int main() {
int num_tests;
cin >> num_tests;
double roots[MAX_DEGREE];
int root_idx = 0;
while (num_tests--) {
cin >> degree;
for (int i = 0; i <= degree; i++) {
cin >> coeffs[i];
}
int num_roots;
cin >> num_roots;
while (num_roots--) {
double a, b;
cin >> a >> b;
while (abs(b - a) > EPS) {
double mid = (a + b) / 2;
if (f(mid) * f(a) > 0) {
a = mid;
} else {
b = mid;
}
}
roots[root_idx++] = (a + b) / 2;
}
}
for (int i = 0; i < root_idx; i++) {
cout << roots[i] << endl;
}
return 0;
}