| Task: | Rain Fall |
| Sender: | OOliOO_slayer |
| Submission time: | 2016-10-04 17:31:39 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.04 s | details |
| #2 | ACCEPTED | 0.05 s | details |
| #3 | ACCEPTED | 0.02 s | details |
| #4 | ACCEPTED | 0.04 s | details |
| #5 | ACCEPTED | 0.05 s | details |
| #6 | ACCEPTED | 0.05 s | details |
| #7 | ACCEPTED | 0.03 s | details |
| #8 | ACCEPTED | 0.05 s | details |
| #9 | ACCEPTED | 0.04 s | details |
| #10 | ACCEPTED | 0.04 s | details |
| #11 | ACCEPTED | 0.04 s | details |
| #12 | ACCEPTED | 0.05 s | details |
| #13 | ACCEPTED | 0.04 s | details |
| #14 | ACCEPTED | 0.05 s | details |
| #15 | ACCEPTED | 0.04 s | details |
| #16 | ACCEPTED | 0.04 s | details |
| #17 | ACCEPTED | 0.05 s | details |
| #18 | ACCEPTED | 0.03 s | details |
| #19 | ACCEPTED | 0.05 s | details |
| #20 | ACCEPTED | 0.04 s | details |
| #21 | ACCEPTED | 0.04 s | details |
| #22 | ACCEPTED | 0.05 s | details |
| #23 | ACCEPTED | 0.04 s | details |
| #24 | ACCEPTED | 0.05 s | details |
| #25 | ACCEPTED | 0.03 s | details |
| #26 | ACCEPTED | 0.06 s | details |
| #27 | ACCEPTED | 0.04 s | details |
| #28 | ACCEPTED | 0.06 s | details |
| #29 | ACCEPTED | 0.04 s | details |
| #30 | ACCEPTED | 0.06 s | details |
| #31 | ACCEPTED | 0.04 s | details |
| #32 | ACCEPTED | 0.04 s | details |
| #33 | ACCEPTED | 0.03 s | details |
| #34 | ACCEPTED | 0.03 s | details |
| #35 | ACCEPTED | 0.04 s | details |
| #36 | ACCEPTED | 0.04 s | details |
Code
#include <stdio.h> // include before iostream for faster scanf
#include <iostream>
#include <vector>
#include <string>
#include <map>
#include <unordered_map>
#include <algorithm>
#include <utility>
#include <set>
#include <unordered_set>
#include <cmath>
#include <math.h>
#include <queue>
#include <stdlib.h>
#include <string.h>
#include <sstream>
#include <tuple>
#include <utility>
#include <iomanip>
#include <iterator>
using namespace std;
typedef long long LL;
#define printv(printVec) for (auto printVecIter : (printVec)) cout << printVecIter << " "; cout << endl;
// g++-4.8 -Wall -Wshadow -std=c++11 a.cpp && ./a.out
double test(double l, double k, double t1, double t2, double h, double pour) {
double totpour = pour*t1;
double rem;
if (totpour > l) {
double timetofill = l/pour;
double restrain = t1 - timetofill;
rem = timetofill*pour + restrain*max(pour - k, (double)0);
} else {
rem = totpour;
}
if (rem > l) {
rem = max(l, rem - k*t2);
}
return rem;
}
int main() {
std::ios::sync_with_stdio(false);cin.tie(0);
double l, k, t1, t2, h;
cin >> l>>k>>t1>>t2>>h;
//cout << test(l,k,t1,t2,h,10);
//return 0;
double ansmn = 0;
double acc = 10000;
for (int i = 0; i < 100; i++) {
double pour = ansmn + acc;
double tot = test(l,k,t1,t2,h,pour);
if (tot < h) ansmn += acc;
acc /= 2;
}
double ansmx = 1000000;
acc = 1000000;
for (int i = 0; i < 100; i++) {
double pour = ansmx - acc;
if (pour < 0) continue;
double tot = test(l,k,t1,t2,h,pour);
if (tot > h) ansmx -= acc;
acc /= 2;
}
cout << setprecision(15) << ansmn*t1 << " " << ansmx*t1 << endl;
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 80.00 0.50 2.00 1.50 80.00 |
| correct output |
|---|
| 80.000000000 80.759403280 |
| user output |
|---|
| 80 80.759403279979 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 100.00 0.50 2.00 1.50 80.00 |
| correct output |
|---|
| 80.000000000 80.000000000 |
| user output |
|---|
| 80 80 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 150.00 1.00 100.00 150.00 100.... |
| correct output |
|---|
| 100.000000000 100.000000000 |
| user output |
|---|
| 100 100 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 150.00 1.00 100.00 150.00 150.... |
| correct output |
|---|
| 150.000000000 358.113883008 |
| user output |
|---|
| 150 358.113883008419 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 150.00 1.00 100.00 15.00 415.0... |
| correct output |
|---|
| 500.000000000 500.000000000 |
| user output |
|---|
| 500 500 |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 50.00 5.00 2.00 2.00 40.00 |
| correct output |
|---|
| 40.000000000 40.000000000 |
| user output |
|---|
| 40 40 |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 50.00 5.00 2.00 2.00 50.00 |
| correct output |
|---|
| 50.000000000 61.925824036 |
| user output |
|---|
| 50 61.9258240356725 |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 50.00 5.00 2.00 2.00 65.00 |
| correct output |
|---|
| 78.642080737 78.642080737 |
| user output |
|---|
| 78.6420807370024 78.6420807370... |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 10.00 1.00 3.00 3.00 3.00 |
| correct output |
|---|
| 3.000000000 3.000000000 |
| user output |
|---|
| 3 3 |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 10.00 1.00 3.00 3.00 10.00 |
| correct output |
|---|
| 10.000000000 13.830951895 |
| user output |
|---|
| 10 13.8309518948453 |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 10.00 1.00 3.00 3.00 16.00 |
| correct output |
|---|
| 20.539392014 20.539392014 |
| user output |
|---|
| 20.5393920141695 20.5393920141... |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 10.00 1.00 3.00 3.00 25.00 |
| correct output |
|---|
| 30.000000000 30.000000000 |
| user output |
|---|
| 30 30 |
Test 13
Verdict: ACCEPTED
| input |
|---|
| 10.00 1.00 3.00 3.00 33.00 |
| correct output |
|---|
| 38.214967272 38.214967272 |
| user output |
|---|
| 38.2149672722129 38.2149672722... |
Test 14
Verdict: ACCEPTED
| input |
|---|
| 1.00 2.00 3.00 2.00 5.00 |
| correct output |
|---|
| 14.588723439 14.588723439 |
| user output |
|---|
| 14.5887234393789 14.5887234393... |
Test 15
Verdict: ACCEPTED
| input |
|---|
| 6.00 2.00 3.00 2.00 7.00 |
| correct output |
|---|
| 14.520797289 14.520797289 |
| user output |
|---|
| 14.5207972893961 14.5207972893... |
Test 16
Verdict: ACCEPTED
| input |
|---|
| 11.00 2.00 3.00 2.00 11.00 |
| correct output |
|---|
| 11.000000000 17.152067348 |
| user output |
|---|
| 11 17.152067347825 |
Test 17
Verdict: ACCEPTED
| input |
|---|
| 16.00 2.00 3.00 2.00 15.00 |
| correct output |
|---|
| 15.000000000 15.000000000 |
| user output |
|---|
| 15 15 |
Test 18
Verdict: ACCEPTED
| input |
|---|
| 21.00 2.00 3.00 2.00 15.00 |
| correct output |
|---|
| 15.000000000 15.000000000 |
| user output |
|---|
| 15 15 |
Test 19
Verdict: ACCEPTED
| input |
|---|
| 26.00 2.00 3.00 2.00 15.00 |
| correct output |
|---|
| 15.000000000 15.000000000 |
| user output |
|---|
| 15 15 |
Test 20
Verdict: ACCEPTED
| input |
|---|
| 31.00 2.00 3.00 2.00 15.00 |
| correct output |
|---|
| 15.000000000 15.000000000 |
| user output |
|---|
| 15 15 |
Test 21
Verdict: ACCEPTED
| input |
|---|
| 25.00 2.00 1.00 1.00 10.00 |
| correct output |
|---|
| 10.000000000 10.000000000 |
| user output |
|---|
| 10 10 |
Test 22
Verdict: ACCEPTED
| input |
|---|
| 25.00 2.00 1.00 2.00 10.00 |
| correct output |
|---|
| 10.000000000 10.000000000 |
| user output |
|---|
| 10 10 |
Test 23
Verdict: ACCEPTED
| input |
|---|
| 25.00 2.00 1.00 3.00 10.00 |
| correct output |
|---|
| 10.000000000 10.000000000 |
| user output |
|---|
| 10 10 |
Test 24
Verdict: ACCEPTED
| input |
|---|
| 25.00 2.00 2.00 1.00 20.00 |
| correct output |
|---|
| 20.000000000 20.000000000 |
| user output |
|---|
| 20 20 |
Test 25
Verdict: ACCEPTED
| input |
|---|
| 25.00 2.00 2.00 2.00 20.00 |
| correct output |
|---|
| 20.000000000 20.000000000 |
| user output |
|---|
| 20 20 |
Test 26
Verdict: ACCEPTED
| input |
|---|
| 25.00 2.00 2.00 3.00 20.00 |
| correct output |
|---|
| 20.000000000 20.000000000 |
| user output |
|---|
| 20 20 |
Test 27
Verdict: ACCEPTED
| input |
|---|
| 25.00 2.00 3.00 1.00 26.00 |
| correct output |
|---|
| 28.789826123 28.789826123 |
| user output |
|---|
| 28.7898261225516 28.7898261225... |
Test 28
Verdict: ACCEPTED
| input |
|---|
| 25.00 2.00 3.00 2.00 25.00 |
| correct output |
|---|
| 25.000000000 30.000000000 |
| user output |
|---|
| 25 30 |
Test 29
Verdict: ACCEPTED
| input |
|---|
| 25.00 2.00 3.00 3.00 25.00 |
| correct output |
|---|
| 25.000000000 32.365424624 |
| user output |
|---|
| 25 32.3654246238621 |
Test 30
Verdict: ACCEPTED
| input |
|---|
| 25.00 2.00 4.00 1.00 34.00 |
| correct output |
|---|
| 38.852299546 38.852299546 |
| user output |
|---|
| 38.8522995463527 38.8522995463... |
Test 31
Verdict: ACCEPTED
| input |
|---|
| 25.00 2.00 4.00 2.00 32.00 |
| correct output |
|---|
| 38.852299546 38.852299546 |
| user output |
|---|
| 38.8522995463527 38.8522995463... |
Test 32
Verdict: ACCEPTED
| input |
|---|
| 25.00 2.00 4.00 3.00 30.00 |
| correct output |
|---|
| 38.852299546 38.852299546 |
| user output |
|---|
| 38.8522995463527 38.8522995463... |
Test 33
Verdict: ACCEPTED
| input |
|---|
| 25.00 2.00 3.00 2.00 25.00 |
| correct output |
|---|
| 25.000000000 30.000000000 |
| user output |
|---|
| 25 30 |
Test 34
Verdict: ACCEPTED
| input |
|---|
| 25.00 2.00 3.00 3.00 25.00 |
| correct output |
|---|
| 25.000000000 32.365424624 |
| user output |
|---|
| 25 32.3654246238621 |
Test 35
Verdict: ACCEPTED
| input |
|---|
| 5.00 7.00 0.01 2.00 6.00 |
| correct output |
|---|
| 20.052545857 20.052545857 |
| user output |
|---|
| 20.0525458571448 20.0525458571... |
Test 36
Verdict: ACCEPTED
| input |
|---|
| 0.01 1000.00 1000.00 1000.00 1... |
| correct output |
|---|
| 2000999.995002499 2000999.9950... |
| user output |
|---|
| 2000999.9950025 2000999.995002... |
