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... |