Each table row shows performance measurements for this PyPy program with a particular command-line input value N.
N | CPU secs | Elapsed secs | Memory KB | Code B | ≈ CPU Load |
---|---|---|---|---|---|
2,098 | 0.67 | 0.67 | 80,972 | 1485 | 4% 0% 1% 99% 0% 4% 0% 0% |
Read the ↓ make, command line, and program output logs to see how this program was run.
Read meteor-contest benchmark to see what this program should do.
# The Computer Language Benchmarks Game # http://benchmarksgame.alioth.debian.org/ # # contributed by Olof Kraigher # modified by Tupteq # 2to3 from __future__ import print_function import sys width = 5 height = 10 rotate = dict(E='NE', NE='NW', NW='W', W='SW', SW='SE', SE='E') flip = dict(E='W', NE='NW', NW='NE', W='E', SW='SE', SE='SW') move = dict(E=lambda x, y: (x+1, y), W=lambda x, y: (x-1, y), NE=lambda x, y: (x + (y%2), y-1), NW=lambda x, y: (x + (y%2) - 1, y-1), SE=lambda x, y: (x + (y%2), y+1), SW=lambda x, y: (x + (y%2) - 1, y+1)) solutions = [] masks = 10 * [0] valid = lambda x, y: 0 <= x < width and 0 <= y < height zerocount = lambda mask: sum([(1<= 0): if (masks[j] & cellMask) == cellMask: masksAtCell[cellCounter][color].append(masks[j]) j = j-1 else: cellMask = cellMask >> 1 cellCounter -= 1 color += 1 def solveCell(cell, board): if to_go <= 0: # Got enough solutions pass elif board == 0x3FFFFFFFFFFFF: # Solved addSolutions() elif board & (1 << cell) != 0: # Cell full solveCell(cell-1, board) elif cell < 0: # Out of board pass else: for color in range(10): if masks[color] == 0: for mask in masksAtCell[cell][color]: if mask & board == 0: masks[color] = mask solveCell(cell-1, board | mask) masks[color] = 0 def addSolutions(): global to_go s = '' mask = 1 for y in range(height): for x in range(width): for color in range(10): if masks[color] & mask != 0: s += str(color) break elif color == 9: s += '.' mask <<= 1 # Inverse ns = '' for y in range(height): for x in range(width): ns += s[width - x - 1 + (width - y - 1) * width] # Finally append solutions.append(s) solutions.append(ns) to_go -= 2 def printSolution(solution): for y in range(height): for x in range(width): print(solution[x + y*width], end=' ') print("") if y % 2 == 0: print("", end=' ') print() def solve(n): global to_go to_go = n generateBitmasks() solveCell(width*height - 1, 0) if __name__ == "__main__": solve(int(sys.argv[1])) print("%d solutions found\n" % len(solutions)) printSolution(min(solutions)) printSolution(max(solutions))
Fri, 09 Sep 2022 06:03:45 GMT COMMAND LINE: /usr/bin/pypy meteor.pypy-2.pypy 2098 PROGRAM OUTPUT: 2098 solutions found 0 0 0 0 1 2 2 2 0 1 2 6 6 1 1 2 6 1 5 5 8 6 5 5 5 8 6 3 3 3 4 8 8 9 3 4 4 8 9 3 4 7 4 7 9 7 7 7 9 9 9 9 9 9 8 9 6 6 8 5 6 6 8 8 5 6 8 2 5 5 7 7 7 2 5 7 4 7 2 0 1 4 2 2 0 1 4 4 0 3 1 4 0 0 3 1 1 3 3 3