-
Notifications
You must be signed in to change notification settings - Fork 1
/
ColorfulRoad.py
98 lines (83 loc) · 2.14 KB
/
ColorfulRoad.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
import math
import string
class ColorfulRoad:
def getMin(self, road):
l=len(road)
dp=[1000000000] * l
dp[0]=0
color=["R","G","B"]
for i in range(l):
for j in range(i+1,l):
if (color.index(road[i])+1)%3==color.index(road[j]):
dp[j]=min(dp[i]+(j-i)**2,dp[j])
if dp[l-1]==1000000000:
return -1
return dp[l-1]
# BEGIN KAWIGIEDIT TESTING
# Generated by KawigiEdit-pfx 2.1.9
import sys
import time
def KawigiEdit_RunTest(testNum, p0, hasAnswer, p1):
sys.stdout.write(str("Test ") + str(testNum) + str(": [") + str("\"") + str(p0) + str("\""))
print(str("]"))
obj = ColorfulRoad()
startTime = time.clock()
answer = obj.getMin(p0)
endTime = time.clock()
res = True
print(str("Time: ") + str((endTime - startTime)) + str(" seconds"))
if (hasAnswer):
print(str("Desired answer:"))
print(str("\t") + str(p1))
print(str("Your answer:"))
print(str("\t") + str(answer))
if (hasAnswer):
res = answer == p1
if (not res):
print(str("DOESN'T MATCH!!!!"))
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
# ----- test 0 -----
p0 = "RGGGB"
p1 = 8
all_right = KawigiEdit_RunTest(0, p0, True, p1) and all_right
# ------------------
# ----- test 1 -----
p0 = "RGBRGBRGB"
p1 = 8
all_right = KawigiEdit_RunTest(1, p0, True, p1) and all_right
# ------------------
# ----- test 2 -----
p0 = "RBBGGGRR"
p1 = -1
all_right = KawigiEdit_RunTest(2, p0, True, p1) and all_right
# ------------------
# ----- test 3 -----
p0 = "RBRRBGGGBBBBR"
p1 = 50
all_right = KawigiEdit_RunTest(3, p0, True, p1) and all_right
# ------------------
# ----- test 4 -----
p0 = "RG"
p1 = 1
all_right = KawigiEdit_RunTest(4, p0, True, p1) and all_right
# ------------------
# ----- test 5 -----
p0 = "RBRGBGBGGBGRGGG"
p1 = 52
all_right = KawigiEdit_RunTest(5, p0, True, p1) and all_right
# ------------------
if (all_right):
print(str("You're a stud (at least on the example cases)!"))
else:
print(str("Some of the test cases had errors."))
# END KAWIGIEDIT TESTING
#Powered by KawigiEdit-pfx 2.1.9!