Problem Statement
At a certain company, a worker is paid an hourly rate of P1 dollars for the first 200 hours he works each month. He is paid an hourly rate of P2 dollars for the remaining hours. Return the minimum number of hours he must work this month to earn salary dollars.
Definition
- Class:
- SalaryCalculator
- Method:
- calcHours
- Parameters:
- int, int, int
- Returns:
- double
- Method signature:
- double calcHours(int P1, int P2, int salary)
- (be sure your method is public)
Notes
- Your return value must have an absolute or relative error less than 1e-9.
Constraints
- P1 will be between 1 and 100, inclusive.
- P2 will be between 1 and 100, inclusive.
- salary will be between 1 and 1,000,000, inclusive.
Examples
10
15
1000
Returns: 100.0
The worker is paid 10 dollars per hour for the first 200 hours, and 15 dollars per hour for any hours beyond that. To earn 1000 dollars, he only needs to work 100 hours at 10 dollars per hour.
10
15
3000
Returns: 266.6666666666667
The worker is paid 10 dollars per hour for the first 200 hours for a total of 2000 dollars. To earn the extra 1000 dollars, he must work approximately 66.67 hours at 15 dollars per hour.
100
1
1000000
Returns: 980200.0
The company does not like to pay for overtime work.
17
23
973546
Returns: 42380.260869565216
1
1
1
Returns: 1.0
100
100
1
Returns: 0.01
1
1
1000000
Returns: 1000000.0
100
100
1000000
Returns: 10000.0
66
91
127390
Returns: 1454.8351648351647
20
79
994690
Returns: 12740.379746835442
19
6
373405
Returns: 61800.833333333336
99
27
620696
Returns: 22455.40740740741
77
31
540150
Returns: 17127.41935483871
82
8
12140
Returns: 148.0487804878049
50
4
336360
Returns: 81790.0
84
73
109660
Returns: 1472.054794520548
10
27
475076
Returns: 17721.333333333332
96
33
624452
Returns: 18540.969696969696
17
70
925729
Returns: 13376.128571428571
18
25
176165
Returns: 7102.6
20
7
818309
Returns: 116529.85714285714
37
23
775216
Returns: 33583.30434782609
44
93
147324
Returns: 1689.505376344086
60
15
486303
Returns: 31820.2
97
14
116803
Returns: 7157.357142857143
39
54
610647
Returns: 11363.833333333334
69
85
595834
Returns: 7047.458823529411
61
68
951304
Returns: 14010.35294117647
70
83
493959
Returns: 5982.638554216867
16
24
46990
Returns: 2024.5833333333333
47
61
263887
Returns: 4371.918032786885
59
70
655040
Returns: 9389.142857142857
88
3
734077
Returns: 239025.66666666666
46
79
993949
Returns: 12665.177215189873
75
13
34749
Returns: 1719.1538461538462
83
94
460468
Returns: 4922.0
7
8
350351
Returns: 43818.875
66
82
300859
Returns: 3708.0365853658536
50
34
38278
Returns: 1031.7058823529412
37
85
522836
Returns: 6263.952941176471
73
96
726040
Returns: 7610.833333333333
68
66
303293
Returns: 4589.287878787879
47
17
949645
Returns: 55508.529411764706
87
57
594798
Returns: 10329.78947368421
21
89
471441
Returns: 5449.898876404494
91
49
638651
Returns: 12862.265306122448
16
5
105604
Returns: 20680.8
76
72
94881
Returns: 1306.6805555555557
19
63
878519
Returns: 14084.42857142857
27
93
142122
Returns: 1670.1290322580646
89
3
584414
Returns: 189071.33333333334
9
36
537674
Returns: 15085.388888888889
96
75
611890
Returns: 8102.533333333334
41
44
315713
Returns: 7188.931818181818
31
5
192429
Returns: 37445.8
43
27
160408
Returns: 5822.518518518518
47
33
754493
Returns: 22778.575757575756
15
23
3000
Returns: 200.0
82
72
4763
Returns: 58.08536585365854
18
86
2307
Returns: 128.16666666666666
89
41
19375
Returns: 238.41463414634146
35
11
11373
Returns: 597.5454545454545
60
87
16723
Returns: 254.28735632183907
18
73
16119
Returns: 371.4931506849315
14
15
8161
Returns: 557.4
13
82
6396
Returns: 246.29268292682926
60
22
4748
Returns: 79.13333333333334
4
45
4522
Returns: 282.7111111111111
44
23
18688
Returns: 629.9130434782609
51
28
9724
Returns: 190.66666666666666
11
5
3099
Returns: 379.8
25
80
18300
Returns: 366.25
62
9
13061
Returns: 273.44444444444446
15
24
8994
Returns: 449.75
58
89
1166
Returns: 20.103448275862068
92
82
18327
Returns: 199.20652173913044
76
10
14185
Returns: 186.64473684210526
71
20
12579
Returns: 177.16901408450704
3
21
1
Returns: 0.3333333333333333
3
2
100
Returns: 33.333333333333336
1
5
200
Returns: 200.0
2
11
401
Returns: 200.0909090909091
10
20
2000
Returns: 200.0
13
13
200
Returns: 15.384615384615385
5
5
4000
Returns: 800.0
15
20
160
Returns: 10.666666666666666
2
1
3
Returns: 1.5
10
15
3000
Returns: 266.6666666666667
10
15
2001
Returns: 200.06666666666666
5
10
1200
Returns: 220.0
2
8
401
Returns: 200.125