Submission details
Task:Taxing Problem
Sender:KnowYourArchitecture
Submission time:2016-11-12 14:54:20 +0200
Language:C++
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#20.06 sdetails
#3ACCEPTED0.02 sdetails
#4ACCEPTED0.06 sdetails
#50.05 sdetails
#6ACCEPTED0.06 sdetails
#7ACCEPTED0.05 sdetails
#8ACCEPTED0.05 sdetails
#90.05 sdetails
#10ACCEPTED0.05 sdetails
#11ACCEPTED0.05 sdetails
#12ACCEPTED0.05 sdetails

Code

#include <iostream>
#include <algorithm>
using namespace std;
double s[21];
double p[21];
int main(){
	int B;
	cin>>B;
	for(int i=0;i<B;++i)
		cin >> s[i] >> p[i], p[i] /= 100;
	
	double P;
	cin >> P;
	P /= 100;
	
	int F;
	cin >> F;
	for(int j=0; j<F; ++j){
		double e,m;
		cin>>e>>m;
		
		int i;
		for(i=0;i<B;++i){
			if(e<s[i])break;
			e-=s[i];
		}
		double pretax=0;
		for(;i<B;++i) {
			if (p[i] == 1)
				continue;
			double step = min(m / (1-p[i]), s[i]-e);
			//cout<<"d"<<step<<endl;
			pretax += step;
			m -= step * (1-p[i]);
			e = 0;
			//pretax += min(m, s[i]-e) / (1-p[i]);
			//if(s[i]-e<m)m-=s[i]-e-min(m,s[i]-e)*p[i];
			//else m=0;
			//e=0;
		}
		pretax+=m/(1-P);
		cout.precision(20);
		cout<<fixed<<pretax<<'\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.37931034481152892113
2321399.73684210516512393951
1483827.05000000004656612873
2143249.54022988490760326385
2274676.20689655188471078873
...

Test 2

Verdict:

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
1104927.34133968781679868698
1406207.47938299016095697880
1815550.24277158919721841812
1007984.30739186797291040421
1664778.01793931820429861546
...

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.54848599998513236642
509085.26120299997273832560
367933.78070699999807402492
372051.27585299999918788671
978627.76005899999290704727
...

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

Test 5

Verdict:

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

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.97368421079590916634
71109.09090909089718479663
74155.31914893617795314640
737754.82352941180579364300
223461.81818181817652657628
...

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.44444444449618458748
1583475.23188405809924006462
1927691.40740740741603076458
1384553.26086956518702208996
2422119.44444444449618458748
...

Test 8

Verdict: ACCEPTED

input
1
10 0
0
3
0 1000
...

correct output
1000.000000000000
1000.000000000000
100000.000000000000

user output
1000.00000000000000000000
1000.00000000000000000000
100000.00000000000000000000

Test 9

Verdict:

input
1
10000 100
0
3
0 1000
...

correct output
11000.000000000000
1000.000000000000
6000.000000000000

user output
1000.00000000000000000000
1000.00000000000000000000
1000.00000000000000000000

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.48821353400126099586
2780191.58111824421212077141
721520.14297988009639084339
2437543.63477145880460739136
2944642.78762145526707172394
...

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.72613338171504437923
112838.89592092962993774563
1422873.29479474574327468872
293145.15809801709838211536
414288.34279482380952686071
...

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.67246975902526173741
34929.69844737936364253983
377885.11476036359090358019
1212187.68111955071799457073
1424443.17057037772610783577
...