#include using namespace std; #define PB push_back #define CL(A, I) (memset(A, I, sizeof(A))) #define D(X) cout<<" "<<#X": "< vi; typedef pair ii; typedef vector vii; ll n, f; ll a[123456]; const double EPS = 1e-8; bool ch1(double x) { double fl = 0; F(n) { fl += x * f; if (fl < a[i] - EPS && i == n-1) return 0; fl = max(0.0, fl - a[i]); } return 1; } double bs1(double lo, double hi) { if (fabs(lo-hi) < 1e-7) return lo; double med = (lo + hi)/2; if (ch1(med)) return bs1(lo, med); return bs1(med, hi); } bool ch2(double x) { double fl = 0; F(n) { fl += x * f; if (fl < a[i] - EPS) return 0; fl = max(0.0, fl - a[i]); } return 1; } double bs2(double lo, double hi) { if (fabs(lo-hi) < 1e-7) return lo; double med = (lo + hi)/2; if (ch2(med)) return bs2(lo, med); return bs2(med, hi); } int main() { while (scanf("%lld%lld", &n, &f) == 2) { F(n) scanf("%lld", &a[i]); printf("%.10lf %.10lf\n", bs1(0, 1e18), bs2(0, 1e18)); } }