#include #include using namespace std; int main() { long n, p; while (cin >> n >> p) { int * pole = new int[n]; for (long i = 0; i < n; i++) { cin >> pole[i]; } unsigned long long capacity = 0; double time = numeric_limits::max(); for (long i = n - 1; i >= 0; i--) { capacity += pole[i]; double nTime = (double)capacity / (double)((n - i) * p); if (nTime < time) { time = nTime; } } long index = 0; for (long i = 1; i < n; i++) { if (pole[i] > pole[index]) { index = i; } } capacity = 0; double bTime = numeric_limits::max(); for (long i = index; i >= 0; i--) { capacity += pole[i]; double nTime = (double)capacity / (double)((index + 1 - i) * p); if (nTime < bTime) { bTime = nTime; } } cout << time << ' ' << bTime << endl; } }