#include #include using namespace std; bool simulation(vector& input, long long f, double mid) { double overflow = 0; for (long long cap : input) { double in = overflow + mid*f; if (in < cap) return false; else overflow = in - cap; } return true; } bool simulation2(vector& input, long long f, double mid) { double overflow = 0; for (long long cap : input) { double in = overflow + mid*f; if (in < cap) overflow = 0; else overflow = in - cap; } return overflow > 0; } int main() { long long n, f; while (cin>>n>>f) { vector input(n); for (long long i=0; i>input[i]; double top = 10000000000; double bot = 0; double eps = 1.0/10000000; while (bot + eps < top) { double mid = (top+bot)/2; if (simulation(input, f, mid)) top = mid; else bot = mid; } double total = top; top = 1000000000; bot = 0; while (bot + eps < top) { double mid = (top+bot)/2; if (simulation2(input, f, mid)) top = mid; else bot = mid; } cout<