#include "iostream" #include "climits" #include "list" #include "queue" #include "stack" #include "set" #include "functional" #include "algorithm" #include "math.h" #include "utility" #include "string" #include "map" #include "unordered_map" #include "iomanip" #include "random" using namespace std; const long long int MOD = 1000000007; long long int power(long long int x, long long int n, long long int M) { long long int tmp = 1; if (n > 0) { tmp = power(x, n / 2, M); if (n % 2 == 0) tmp = (tmp*tmp) % M; else tmp = (((tmp*tmp) % M)*x) % M; } return tmp; } long long int N, M, K, Q, W, H, L, R; long long int ans; int main() { ios::sync_with_stdio(false); long double a, b, c; cin >> a >> b >> c; long double d,e; d = (-a + sqrt(a*a - 3 * b)) / 3; e = (-a - sqrt(a*a - 3 * b)) / 3; // cout << d << " " << e << endl; long double l = -1000000000; long double r = e; for (int i = 0; i < 100; i++) { long double mid = (r + l) / 2; if (mid + a + b/mid + c / mid/mid > 0) { r = mid; } else { l = mid; } } cout << (int)round(l) << " "; l = e; r = d; for (int i = 0; i < 100; i++) { long double mid = (r + l) / 2; if (mid + a + b / mid + c / mid / mid < 0) { r = mid; } else { l = mid; } } cout << (int)round(l) << " "; l = d; r = 1000000000; for (int i = 0; i < 100; i++) { long double mid = (r + l) / 2; if (mid + a + b / mid + c / mid / mid > 0) { r = mid; } else { l = mid; } } cout << (int)round(l) << endl; return 0; }