-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTheShuttles.py
110 lines (94 loc) · 2.68 KB
/
TheShuttles.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import math, string, itertools, fractions, heapq, collections, re, array, bisect, random
class TheShuttles:
def getLeastCost(self, cnt, baseCost, seatCost):
mnCost = 100000000000000
for seat in range(1, 100 + 1):
cost = 0
for c in cnt:
number = int(math.ceil(1.0 * c / seat))
cost += (baseCost + seat * seatCost) * number
mnCost = min(mnCost, cost)
return mnCost
# BEGIN KAWIGIEDIT TESTING
# Generated by KawigiEdit-pf 2.3.0
import sys
import time
def KawigiEdit_RunTest(testNum, p0, p1, p2, hasAnswer, p3):
sys.stdout.write(str("Test ") + str(testNum) + str(": [") + str("{"))
for i in range(len(p0)):
if (i > 0):
sys.stdout.write(str(","))
sys.stdout.write(str(p0[i]))
sys.stdout.write(str("}") + str(",") + str(p1) + str(",") + str(p2))
print(str("]"))
obj = TheShuttles()
startTime = time.clock()
answer = obj.getLeastCost(p0, p1, p2)
endTime = time.clock()
res = True
print(str("Time: ") + str((endTime - startTime)) + str(" seconds"))
if (hasAnswer):
res = answer == p3
if (not res):
print(str("DOESN'T MATCH!!!!"))
if (hasAnswer):
print(str("Desired answer:"))
print(str("\t") + str(p3))
print(str("Your answer:"))
print(str("\t") + str(answer))
elif ((endTime - startTime) >= 2):
print(str("FAIL the timeout"))
res = False
elif (hasAnswer):
print(str("Match :-)"))
else:
print(str("OK, but is it right?"))
print(str(""))
return res
all_right = True
tests_disabled = False
# ----- test 0 -----
disabled = False
p0 = (9,)
p1 = 30
p2 = 5
p3 = 75
all_right = (disabled or KawigiEdit_RunTest(0, p0, p1, p2, True, p3)) and all_right
tests_disabled = tests_disabled or disabled
# ------------------
# ----- test 1 -----
disabled = False
p0 = (9, 4)
p1 = 30
p2 = 5
p3 = 150
all_right = (disabled or KawigiEdit_RunTest(1, p0, p1, p2, True, p3)) and all_right
tests_disabled = tests_disabled or disabled
# ------------------
# ----- test 2 -----
disabled = False
p0 = (9, 4)
p1 = 10
p2 = 5
p3 = 105
all_right = (disabled or KawigiEdit_RunTest(2, p0, p1, p2, True, p3)) and all_right
tests_disabled = tests_disabled or disabled
# ------------------
# ----- test 3 -----
disabled = False
p0 = (51, 1, 77, 14, 17, 10, 80)
p1 = 32
p2 = 40
p3 = 12096
all_right = (disabled or KawigiEdit_RunTest(3, p0, p1, p2, True, p3)) and all_right
tests_disabled = tests_disabled or disabled
# ------------------
if (all_right):
if (tests_disabled):
print(str("You're a stud (but some test cases were disabled)!"))
else:
print(str("You're a stud (at least on given cases)!"))
else:
print(str("Some of the test cases had errors."))
# END KAWIGIEDIT TESTING
# Powered by KawigiEdit-pf 2.3.0!