Task: | Taxing Problem |
Sender: | Game of Nolife |
Submission time: | 2016-11-12 13:22:52 +0200 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.05 s | details |
#2 | ACCEPTED | 0.05 s | details |
#3 | ACCEPTED | 0.05 s | details |
#4 | ACCEPTED | 0.05 s | details |
#5 | ACCEPTED | 0.05 s | details |
#6 | ACCEPTED | 0.06 s | details |
#7 | ACCEPTED | 0.06 s | details |
#8 | ACCEPTED | 0.06 s | details |
#9 | ACCEPTED | 0.05 s | details |
#10 | ACCEPTED | 0.05 s | details |
#11 | ACCEPTED | 0.06 s | details |
#12 | ACCEPTED | 0.05 s | details |
Code
#include <bits/stdc++.h> #define F first #define S second #define X real() #define Y imag() using namespace std; typedef long long ll; typedef long double ld; const ld INF=1e18; ld s[23],p[23]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int b; cin>>b; s[0]=0; for (int i=1;i<=b;i++) { cin>>s[i]>>p[i]; s[i]+=s[i-1]; p[i]/=100; } cin>>p[b+1]; s[b+1]=INF; p[b+1]/=100; int f; cin>>f; for (int i=0;i<f;i++) { ld e,m; cin>>e>>m; ld ala=e; ld yla=INF; for (int ii=0;ii<300;ii++) { ld mid=(ala+yla)/2; ld ea=0; for (int j=1;j<=b+1;j++) { ld dis=min(mid,s[j])-max(e,s[j-1]); if (dis>0) ea+=dis*p[j]; } if (((mid-e)-ea)>=m) yla=mid; else ala=mid; } cout<<setprecision(15)<<ala-e<<"\n"; } }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
15 148891.00 28.00 805364.00 87.00 634582.00 79.00 17853.00 44.00 ... |
correct output |
---|
2547695.379310344827 2321399.736842105263 1483827.050000000000 2143249.540229885057 2274676.206896551724 ... |
user output |
---|
2547695.37931034 2321399.73684211 1483827.05 2143249.54022989 2274676.20689655 ... |
Test 2
Verdict: ACCEPTED
input |
---|
20 134418.247909 100.000000 460992.674814 100.000000 483182.676209 100.000000 547855.202473 100.000000 ... |
correct output |
---|
9156906.198523983 9693423.061349906 10502105.752328817 9672904.490861356 9564540.496120345 ... |
user output |
---|
9156906.19851969 9693423.06134599 10502105.7523276 9672904.49085987 9564540.49611632 ... |
Test 3
Verdict: ACCEPTED
input |
---|
20 403700.601405 0.000000 460258.604510 0.000000 23786.440372 0.000000 563133.109868 0.000000 ... |
correct output |
---|
485497.5484875012 509085.26119997073 367933.7807113825 372051.2758548012 978627.760053996 ... |
user output |
---|
485497.548486 509085.261203 367933.780707 372051.275853 978627.760059 ... |
Test 4
Verdict: ACCEPTED
input |
---|
20 1000000.000000 89.487794 1000000.000000 92.271080 1000000.000000 26.954953 1000000.000000 10.724797 ... |
correct output |
---|
2215356.9227896244 2215356.9227896244 2215356.9227896244 2215356.9227896244 2215356.9227896244 ... |
user output |
---|
2215356.92279524 2215356.92279524 2215356.92279524 2215356.92279524 2215356.92279524 ... |
Test 5
Verdict: ACCEPTED
input |
---|
20 1000000.000000 100 1000000.000000 100 1000000.000000 100 1000000.000000 100 ... |
correct output |
---|
100018999999.99973770 100018999999.99973770 100018999999.99973770 100018999999.99973770 100018999999.99973770 ... |
user output |
---|
100018999999.999 100018999999.999 100018999999.999 100018999999.999 100018999999.999 ... |
Test 6
Verdict: ACCEPTED
input |
---|
13 802727.00 45.00 248820.00 6.00 599289.00 32.00 638330.00 62.00 ... |
correct output |
---|
926865.973684210526 71109.090909090909 74155.319148936170 737754.823529411765 223461.818181818182 ... |
user output |
---|
926865.973684211 71109.0909090909 74155.3191489362 737754.823529412 223461.818181818 ... |
Test 7
Verdict: ACCEPTED
input |
---|
13 372146.00 54.00 286443.00 77.00 979141.00 88.00 100349.00 95.00 ... |
correct output |
---|
2176969.444444444444 1583475.231884057971 1927691.407407407408 1384553.260869565217 2422119.444444444445 ... |
user output |
---|
2176969.44444444 1583475.23188406 1927691.40740741 1384553.26086957 2422119.44444444 ... |
Test 8
Verdict: ACCEPTED
input |
---|
1 10 0 0 3 0 1000 ... |
correct output |
---|
1000.000000000000 1000.000000000000 100000.000000000000 |
user output |
---|
1000 1000 100000 |
Test 9
Verdict: ACCEPTED
input |
---|
1 10000 100 0 3 0 1000 ... |
correct output |
---|
11000.000000000000 1000.000000000000 6000.000000000000 |
user output |
---|
11000 1000 6000 |
Test 10
Verdict: ACCEPTED
input |
---|
20 28281.933214 48.545249 149479.400680 93.450971 514177.468308 96.084911 213457.157686 31.185031 ... |
correct output |
---|
2767119.4882088914 2780191.581115332 721520.1429801255 2437543.63477251 2944642.7876166585 ... |
user output |
---|
2767119.48821353 2780191.58111824 721520.14297988 2437543.63477146 2944642.78762146 ... |
Test 11
Verdict: ACCEPTED
input |
---|
20 691855.785528 61.573933 515272.305523 3.029572 109193.145332 26.723722 902525.060198 57.548549 ... |
correct output |
---|
1340781.726133855 112838.89592164087 1422873.294797 293145.15809915063 414288.3427959987 ... |
user output |
---|
1340781.72613338 112838.89592093 1422873.29479475 293145.158098017 414288.342794824 ... |
Test 12
Verdict: ACCEPTED
input |
---|
20 620628.200177 32.182062 510518.048258 25.030431 24819.377991 40.889777 216472.622381 86.584436 ... |
correct output |
---|
33928.67246816422 34929.69844387517 377885.11476151145 1212187.6811249875 1424443.170566292 ... |
user output |
---|
33928.672469759 34929.6984473794 377885.114760364 1212187.68111955 1424443.17057038 ... |