#include #include #include #include #include using namespace std; int main(void){ for (;!feof(stdin);) { int N, F0; if (scanf("%d %d", &N, &F0) != 2) break; vector C; vector F, V, X; C.resize(N); F.resize(N); V.resize(N); X.resize(N); for (int i =0 ; i < N; i++) { scanf("%d", &C[i]); F[i]=F0; V[i] = 0; } double T = 0; double T_last = 0; for (int turn = 0; turn < N; turn++) { for (int i =0 ; i < N; i++) { if (F[i] > 1e-4) X[i] = (C[i] - V[i]) / F[i]; else X[i] = 10e9; } auto it = min_element(X.begin(), X.end()); auto dT = *it; int Z = it - X.begin(); for (int i =0 ; i < N; i++) { V[i] += dT * F[i]; } double F_dispose = F[Z]; F[Z] = 0; for (int j = Z + 1; j < N; j++ ) { if (C[j] - V[j] > 1e-3) { F[j] += F_dispose; break; } } //printf("turn %d: FILL %d, F=%g, dT = %g\n", turn, Z, F[Z], dT); T += dT; if (Z == N-1) T_last = T; } printf("%.7f %.7f\n", T_last, T); } }