-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathPackingBallsDiv2.py
128 lines (111 loc) · 3.02 KB
/
PackingBallsDiv2.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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# -*- coding: utf-8 -*-
import math,string,itertools,fractions,heapq,collections,re,array,bisect,random
class PackingBallsDiv2:
def minPacks(self, R, G, B):
count=0
lst=[R,G,B]
#共通のパックにするため最小のものを探す
mn=min(lst)
lst=map(lambda x:x-mn,lst)
count=mn
print count
#数の多いものからパックしていく 3,2をチェック
for c in xrange(3, 1, -1):
for index in xrange(len(lst)):
count+=lst[index]/c
lst[index]%=c
print lst,count
#やりやすいようにソートする
lst.sort()
if lst[1]==1:
lst[1]-=1
lst[2]-=1
count+=1
return count+lst[1]+lst[2]
# 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(p0) + str(",") + str(p1) + str(",") + str(p2))
print(str("]"))
obj = PackingBallsDiv2()
startTime = time.clock()
answer = obj.minPacks(p0, p1, p2)
endTime = time.clock()
res = True
print(str("Time: ") + str((endTime - startTime)) + str(" seconds"))
if (hasAnswer):
print(str("Desired answer:"))
print(str("\t") + str(p3))
print(str("Your answer:"))
print(str("\t") + str(answer))
if (hasAnswer):
res = answer == p3
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
tests_disabled = False
# ----- test 0 -----
disabled = False
p0 = 4
p1 = 2
p2 = 4
p3 = 4
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 = 1
p1 = 7
p2 = 1
p3 = 3
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 = 2
p1 = 3
p2 = 5
p3 = 4
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 = 78
p1 = 53
p2 = 64
p3 = 66
all_right = (disabled or KawigiEdit_RunTest(3, p0, p1, p2, True, p3) ) and all_right
tests_disabled = tests_disabled or disabled
# ------------------
# ----- test 4 -----
disabled = False
p0 = 100
p1 = 100
p2 = 100
p3 = 100
all_right = (disabled or KawigiEdit_RunTest(4, 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!