CSES - UKIEPC 2016 - Results
Submission details
Task:Taxing Problem
Sender:Game of Nolife
Submission time:2016-11-12 13:22:52 +0200
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.05 sdetails
#2ACCEPTED0.05 sdetails
#3ACCEPTED0.05 sdetails
#4ACCEPTED0.05 sdetails
#5ACCEPTED0.05 sdetails
#6ACCEPTED0.06 sdetails
#7ACCEPTED0.06 sdetails
#8ACCEPTED0.06 sdetails
#9ACCEPTED0.05 sdetails
#10ACCEPTED0.05 sdetails
#11ACCEPTED0.06 sdetails
#12ACCEPTED0.05 sdetails

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