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