// UVa 11109 - Rinse
#include <iostream>
#include <stdio.h>
using namespace std;
int main() {
int k;
while (true) {
cin >> k;
if (k == 0)
break;
double rain, w, l, cap;
cin >> rain >> w >> l >> cap;
double r, r0;
if (k == 1) {
r0 = min(cap - w, rain);
} else {
if (w <= l) {
r0 = min(l - w, rain);
rain -= r0;
r = rain / k;
r0 += r;
} else if (l < w) {
double rneed = min((w - l) * (k - 1), rain);
rain -= rneed;
r = rneed / (k - 1) + rain / k;
r0 = rain / k;
}
if (r + l > cap)
r = cap - l;
if (r0 + w > cap)
r0 = cap - w;
}
printf("%d", k);
if (k > 0) {
printf(" %.2f", r0);
for (int i = 1; i < k; i++)
printf(" %.2f", r);
}
printf("\n");
}
return 0;
}
Friday, May 15, 2015
UVa 11109 - Rinse
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment