CSES - UKIEPC 2016 - Results
Submission details
Task:Taxing Problem
Sender:KnowYourArchitecture
Submission time:2016-11-12 15:45:50 +0200
Language:C++
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.05 sdetails
#20.05 sdetails
#3ACCEPTED0.05 sdetails
#4ACCEPTED0.05 sdetails
#50.04 sdetails
#6ACCEPTED0.06 sdetails
#7ACCEPTED0.06 sdetails
#8ACCEPTED0.05 sdetails
#90.05 sdetails
#10ACCEPTED0.05 sdetails
#11ACCEPTED0.06 sdetails
#12ACCEPTED0.06 sdetails

Code

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
#define double long double
double s[21];
double p[21];
const double EPS = 1e-10;
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 (fabs(p[i]-1)<EPS)
				continue;
			if (m / (1-p[i]) < s[i]-e) {
				double step = m / (1-p[i]);
				pretax += step;
				m = 0;
				e = 0;
			} else {
			
				double step = s[i]-e;
				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.37931034482767245208
2321399.73684210526312199363
1483827.05000000000006821210
2143249.54022988505744251597
2274676.20689655172418497386
...

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.34133968787796220568
1406207.47938299023917352315
1815550.24277158924712693988
1007984.30739186796370177035
1664778.01793931821771366231
...

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.54848599999999692045
509085.26120299999999474494
367933.78070700000000670116
372051.27585300000001211629
978627.76005900000001247463
...

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

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

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.97368421052630083068
71109.09090909090908638746
74155.31914893617021533601
737754.82352941176469585116
223461.81818181818181301423
...

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.44444444444457076315
1583475.23188405797100131167
1927691.40740740740750425175
1384553.26086956521737647563
2422119.44444444444457076315
...

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.48821353398420797021
2780191.58111824460388561420
721520.14297987997719019404
2437543.63477145893284614431
2944642.78762145588211751601
...

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.72613338198618748720
112838.89592092962609370943
1422873.29479474574600317283
293145.15809801716108040637
414288.34279482384624770930
...

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.67246975902982697448
34929.69844737936268685985
377885.11476036363501407322
1212187.68111955089750608749
1424443.17057037756876525236
...