Initial release
This commit is contained in:
65
SW V Luke, Han et Chewie coupent une pizza.py
Normal file
65
SW V Luke, Han et Chewie coupent une pizza.py
Normal file
@@ -0,0 +1,65 @@
|
||||
# olives = [(12, 15), (15, 128), (13, 314)]
|
||||
# piments = [(20, 145), (16, 214), (14, 345)]
|
||||
# anchois = [(18, 42), (20, 127), (12, 153), (12, 258), (15, 259), (19, 342)]
|
||||
|
||||
olives = [(20, 16), (14, 29), (17, 37), (13, 54), (12, 69), (18, 89), (16, 113), (11, 123), (20, 139), (20, 172), (14, 182), (17, 189), (16, 194), (19, 213), (20, 229), (20, 230), (12, 271), (11, 278), (12, 324), (19, 326), (17, 340)]
|
||||
anchois = [(13, 3), (19, 14), (9, 35), (16, 40), (12, 43), (16, 55), (10, 74), (16, 78), (19, 107), (13, 109), (13, 121), (8, 136), (9, 145), (11, 154), (20, 183), (18, 198), (12, 203), (12, 209), (15, 212), (12, 214), (20, 225), (9, 247), (10, 260), (17, 261), (18, 277), (19, 288), (16, 294), (10, 306), (15, 312), (10, 332), (17, 346), (15, 350), (20, 357)]
|
||||
piments = [(15, 26), (16, 30), (14, 42), (10, 53), (16, 61), (19, 84), (10, 86), (20, 129), (17, 137), (9, 159), (20, 176), (11, 177), (13, 178), (15, 181), (10, 199), (20, 200), (17, 220), (13, 228), (10, 232), (10, 237), (19, 245), (16, 249), (11, 252), (19, 290), (17, 311), (20, 349), (8, 353)]
|
||||
|
||||
olives = sorted([x[1] for x in olives])
|
||||
piments = sorted([x[1] for x in piments])
|
||||
anchois = sorted([x[1] for x in anchois])
|
||||
|
||||
nb_olives = len(olives)//3
|
||||
nb_piments = len(piments)//3
|
||||
nb_anchois = len(anchois)//3
|
||||
|
||||
#check that 2 condiments are never on the same angle
|
||||
for i in olives:
|
||||
if i in piments:
|
||||
raise ValueError("piments and olives in the same angle")
|
||||
if i in anchois:
|
||||
raise ValueError("anchois and olives in the same angle")
|
||||
for i in piments:
|
||||
if i in olives:
|
||||
raise ValueError("olives and piments in the same angle")
|
||||
if i in anchois:
|
||||
raise ValueError("anchois and piments in the same angle")
|
||||
for i in anchois:
|
||||
if i in piments:
|
||||
raise ValueError("piments and anchois in the same angle")
|
||||
if i in olives:
|
||||
raise ValueError("olives and anchois in the same angle")
|
||||
|
||||
pizza = list()
|
||||
for a in range(360):
|
||||
if a in olives:
|
||||
pizza.append({"olive":a})
|
||||
if a in piments:
|
||||
pizza.append({"piment":a})
|
||||
if a in anchois:
|
||||
pizza.append({"anchois":a})
|
||||
|
||||
def rotate(l):
|
||||
return l[1:]+l[:1]
|
||||
|
||||
for a in range(len(pizza)):
|
||||
sum = {"olive":0, "piment":0, "anchois":0}
|
||||
for i in range(len(pizza)):
|
||||
sum[list(pizza[i].keys())[0]] += 1
|
||||
if sum["olive"] == nb_olives and sum["piment"] == nb_piments and sum["anchois"] == nb_anchois:
|
||||
sum = {"olive":0, "piment":0, "anchois":0}
|
||||
if sum["olive"] > nb_olives or sum["piment"] > nb_piments or sum["anchois"] > nb_anchois:
|
||||
break
|
||||
else:
|
||||
res = a
|
||||
break
|
||||
pizza = rotate(pizza)
|
||||
|
||||
a1 = pizza[0][list(pizza[0].keys())[0]]-1
|
||||
a2 = pizza[nb_olives+nb_piments+nb_anchois][list(pizza[nb_olives+nb_piments+nb_anchois].keys())[0]]-1
|
||||
a3 = pizza[2*nb_olives+2*nb_piments+2*nb_anchois][list(pizza[2*nb_olives+2*nb_piments+2*nb_anchois].keys())[0]]-1
|
||||
print(olives)
|
||||
print(piments)
|
||||
print(anchois)
|
||||
print("Il faut couper en", a1, a2, a3)
|
||||
Reference in New Issue
Block a user