__author__ = 'Amazon'
import time
class Cube:
def __init__(self,X,Y,Z):
self.x = X
self.y = Y
self.z = Z
def drawCube(self):
cubeString = ''
z = self.z
zTemp = 1
while z >= 0:
for i in xrange(z):
cubeString += ' '
if z == self.z:
for x in xrange(self.x):
cubeString += ' ___'
else:
for x in xrange(self.x):
cubeString += '/___'
cubeString += '/'
for ztmp in xrange(zTemp):
if ztmp == zTemp - 1 and ztmp >= self.y:
cubeString += '/'
else:
cubeString += '|'
if zTemp <= self.y:
zTemp += 1
cubeString += '\n'
z -= 1
for y in xrange(self.y):
for x in xrange(self.x):
cubeString += '|___'
if y >= (self.y-self.z):
zTemp -= 1
for ztmp in xrange(zTemp):
if ztmp != zTemp - 1:
cubeString += '|'
elif y < self.y - self.z:
cubeString += '|'
else:
for i in xrange(self.z):
if y == self.y - (i+1):
cubeString += '|/'
cubeString += '\n'
print(cubeString)
start = time.time()
cubes = dict()
cubes[0] = Cube(2, 2, 2)
cubes[1] = Cube(2, 2, 4)
cubes[2]= Cube(2, 2, 6)
cubes[3] = Cube(2, 4, 2)
cubes[4] = Cube(2, 4, 4)
cubes[5] = Cube(2, 4, 6)
cubes[6] = Cube(2, 6, 2)
cubes[7] = Cube(2, 6, 4)
cubes[8] = Cube(2, 6, 6)
cubes[9] = Cube(4, 2, 2)
cubes[10] = Cube(4, 2, 4)
cubes[11] = Cube(4, 2, 6)
cubes[12] = Cube(4, 4, 2)
cubes[13] = Cube(4, 4, 4)
cubes[14] = Cube(4, 4, 6)
cubes[15] = Cube(4, 6, 2)
cubes[16] = Cube(4, 6, 4)
cubes[17] = Cube(4, 6, 6)
cubes[18] = Cube(6, 2, 2)
cubes[19] = Cube(6, 2, 4)
cubes[20] = Cube(6, 2, 6)
cubes[21] = Cube(6, 4, 2)
cubes[22] = Cube(6, 4, 4)
cubes[23] = Cube(6, 4, 6)
cubes[24] = Cube(6, 6, 2)
cubes[25] = Cube(6, 6, 4)
cubes[26] = Cube(6, 6, 6)
print("Tiempo de preparacion: " + str(time.time() - start))
for i in xrange(len(cubes)):
cubes[i].drawCube()
print("\n\rTiempo de ejecucion: " + str(time.time()-start))
X19hdXRob3JfXyA9ICdBbWF6b24nCgppbXBvcnQgdGltZQoKY2xhc3MgQ3ViZToKICAgIGRlZiBfX2luaXRfXyhzZWxmLFgsWSxaKToKICAgICAgICBzZWxmLnggPSBYCiAgICAgICAgc2VsZi55ID0gWQogICAgICAgIHNlbGYueiA9IFoKCiAgICBkZWYgZHJhd0N1YmUoc2VsZik6CiAgICAgICAgY3ViZVN0cmluZyA9ICcnCiAgICAgICAgeiA9IHNlbGYuegogICAgICAgIHpUZW1wID0gMQogICAgICAgIHdoaWxlIHogPj0gMDoKICAgICAgICAgICAgZm9yIGkgaW4geHJhbmdlKHopOgogICAgICAgICAgICAgICAgY3ViZVN0cmluZyArPSAnICcKICAgICAgICAgICAgaWYgeiA9PSBzZWxmLno6CiAgICAgICAgICAgICAgICBmb3IgeCBpbiB4cmFuZ2Uoc2VsZi54KToKICAgICAgICAgICAgICAgICAgICBjdWJlU3RyaW5nICs9ICcgX19fJwogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgZm9yIHggaW4geHJhbmdlKHNlbGYueCk6CiAgICAgICAgICAgICAgICAgICAgY3ViZVN0cmluZyArPSAnL19fXycKICAgICAgICAgICAgICAgIGN1YmVTdHJpbmcgKz0gJy8nCiAgICAgICAgICAgICAgICBmb3IgenRtcCBpbiB4cmFuZ2UoelRlbXApOgogICAgICAgICAgICAgICAgICAgIGlmIHp0bXAgPT0gelRlbXAgLSAxIGFuZCB6dG1wID49IHNlbGYueToKICAgICAgICAgICAgICAgICAgICAgICAgY3ViZVN0cmluZyArPSAnLycKICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICBjdWJlU3RyaW5nICs9ICd8JwogICAgICAgICAgICAgICAgaWYgelRlbXAgPD0gc2VsZi55OgogICAgICAgICAgICAgICAgICAgIHpUZW1wICs9IDEKICAgICAgICAgICAgY3ViZVN0cmluZyArPSAnXG4nCiAgICAgICAgICAgIHogLT0gMQoKICAgICAgICBmb3IgeSBpbiB4cmFuZ2Uoc2VsZi55KToKICAgICAgICAgICAgZm9yIHggaW4geHJhbmdlKHNlbGYueCk6CiAgICAgICAgICAgICAgICBjdWJlU3RyaW5nICs9ICd8X19fJwogICAgICAgICAgICBpZiB5ID49IChzZWxmLnktc2VsZi56KToKICAgICAgICAgICAgICAgIHpUZW1wIC09IDEKICAgICAgICAgICAgZm9yIHp0bXAgaW4geHJhbmdlKHpUZW1wKToKICAgICAgICAgICAgICAgIGlmIHp0bXAgIT0gelRlbXAgLSAxOgogICAgICAgICAgICAgICAgICAgIGN1YmVTdHJpbmcgKz0gJ3wnCiAgICAgICAgICAgICAgICBlbGlmIHkgPCBzZWxmLnkgLSBzZWxmLno6CiAgICAgICAgICAgICAgICAgICAgY3ViZVN0cmluZyArPSAnfCcKICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4geHJhbmdlKHNlbGYueik6CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIHkgPT0gc2VsZi55IC0gKGkrMSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdWJlU3RyaW5nICs9ICd8LycKICAgICAgICAgICAgY3ViZVN0cmluZyArPSAnXG4nCgogICAgICAgIHByaW50KGN1YmVTdHJpbmcpCgpzdGFydCA9IHRpbWUudGltZSgpCgpjdWJlcyA9IGRpY3QoKQoKY3ViZXNbMF0gPSBDdWJlKDIsIDIsIDIpCmN1YmVzWzFdID0gQ3ViZSgyLCAyLCA0KQpjdWJlc1syXT0gQ3ViZSgyLCAyLCA2KQpjdWJlc1szXSA9IEN1YmUoMiwgNCwgMikKY3ViZXNbNF0gPSBDdWJlKDIsIDQsIDQpCmN1YmVzWzVdID0gQ3ViZSgyLCA0LCA2KQpjdWJlc1s2XSA9IEN1YmUoMiwgNiwgMikKY3ViZXNbN10gPSBDdWJlKDIsIDYsIDQpCmN1YmVzWzhdID0gQ3ViZSgyLCA2LCA2KQpjdWJlc1s5XSA9IEN1YmUoNCwgMiwgMikKY3ViZXNbMTBdID0gQ3ViZSg0LCAyLCA0KQpjdWJlc1sxMV0gPSBDdWJlKDQsIDIsIDYpCmN1YmVzWzEyXSA9IEN1YmUoNCwgNCwgMikKY3ViZXNbMTNdID0gQ3ViZSg0LCA0LCA0KQpjdWJlc1sxNF0gPSBDdWJlKDQsIDQsIDYpCmN1YmVzWzE1XSA9IEN1YmUoNCwgNiwgMikKY3ViZXNbMTZdID0gQ3ViZSg0LCA2LCA0KQpjdWJlc1sxN10gPSBDdWJlKDQsIDYsIDYpCmN1YmVzWzE4XSA9IEN1YmUoNiwgMiwgMikKY3ViZXNbMTldID0gQ3ViZSg2LCAyLCA0KQpjdWJlc1syMF0gPSBDdWJlKDYsIDIsIDYpCmN1YmVzWzIxXSA9IEN1YmUoNiwgNCwgMikKY3ViZXNbMjJdID0gQ3ViZSg2LCA0LCA0KQpjdWJlc1syM10gPSBDdWJlKDYsIDQsIDYpCmN1YmVzWzI0XSA9IEN1YmUoNiwgNiwgMikKY3ViZXNbMjVdID0gQ3ViZSg2LCA2LCA0KQpjdWJlc1syNl0gPSBDdWJlKDYsIDYsIDYpCgpwcmludCgiVGllbXBvIGRlIHByZXBhcmFjaW9uOiAiICsgc3RyKHRpbWUudGltZSgpIC0gc3RhcnQpKQoKZm9yIGkgaW4geHJhbmdlKGxlbihjdWJlcykpOgogICAgY3ViZXNbaV0uZHJhd0N1YmUoKQoKcHJpbnQoIlxuXHJUaWVtcG8gZGUgZWplY3VjaW9uOiAiICsgc3RyKHRpbWUudGltZSgpLXN0YXJ0KSk=