champagne wrote:Waiting now for Blue's first shot

The code doesn't actually run a single grid at a time, due to the "divide and conquer" approach.

I can run a crippled version, that does to that, but I still need to run two passes.

One pass catches 17's where one band (or stack) has 7 or more clues.

The other catches 17's that are 6+6+5 in both directions.

The outputs for the 100 grids, are below.

Adding the averages, it's ~1.57 seconds per grid.

The normal code, runs in two passes over 983,959,110 (ED) band 1&2 fills, and takes ~1.04s total, per "input".

Multiplying by (983,959,110 inputs)/(5,472,730,538 canonical grids), gives ~0.19s per grid.

N+x+y,N>=7:

**Hidden Text:**Show

grid 1: 0.25s, avg = 0.249602s

grid 2: 0.11s, avg = 0.179401s

grid 3: 0.23s, avg = 0.197601s

grid 4: 0.09s, avg = 0.171601s

grid 5: 0.45s, avg = 0.227761s

grid 6: 0.06s, avg = 0.200201s

grid 7: 0.16s, avg = 0.193887s

grid 8: 0.08s, avg = 0.179401s

grid 9: 0.45s, avg = 0.209735s

grid 10: 0.06s, avg = 0.195001s

grid 11: 0.44s, avg = 0.216983s

grid 12: 0.11s, avg = 0.208001s

grid 13: 0.73s, avg = 0.248402s

grid 14: 0.11s, avg = 0.238459s

grid 15: 0.33s, avg = 0.244402s

grid 16: 0.14s, avg = 0.237902s

grid 17: 0.80s, avg = 0.270708s

grid 18: 0.22s, avg = 0.267802s

grid 19: 0.09s, avg = 0.258633s

grid 20: 0.47s, avg = 0.269102s

grid 21: 0.11s, avg = 0.261487s

grid 22: 0.16s, avg = 0.256693s

grid 23: 0.05s, avg = 0.247567s

grid 24: 0.66s, avg = 0.264552s

grid 25: 0.12s, avg = 0.258962s

grid 26: 0.19s, avg = 0.256202s

grid 27: 0.31s, avg = 0.258268s

grid 28: 0.17s, avg = 0.255173s

grid 29: 0.09s, avg = 0.249602s

grid 30: 0.30s, avg = 0.251162s

grid 31: 0.17s, avg = 0.248595s

grid 32: 0.08s, avg = 0.243264s

grid 33: 0.76s, avg = 0.259056s

grid 34: 0.09s, avg = 0.254190s

grid 35: 0.14s, avg = 0.250939s

grid 36: 0.19s, avg = 0.249168s

grid 37: 0.06s, avg = 0.244120s

grid 38: 0.58s, avg = 0.252886s

grid 39: 0.12s, avg = 0.249602s

grid 40: 0.64s, avg = 0.259352s

grid 41: 0.11s, avg = 0.255689s

grid 42: 0.08s, avg = 0.251459s

grid 43: 0.14s, avg = 0.248876s

grid 44: 0.08s, avg = 0.244992s

grid 45: 0.06s, avg = 0.240935s

grid 46: 0.06s, avg = 0.237054s

grid 47: 0.42s, avg = 0.240972s

grid 48: 0.47s, avg = 0.245702s

grid 49: 0.25s, avg = 0.245781s

grid 50: 0.06s, avg = 0.242114s

grid 51: 0.12s, avg = 0.239813s

grid 52: 0.17s, avg = 0.238502s

grid 53: 0.42s, avg = 0.241949s

grid 54: 0.20s, avg = 0.241224s

grid 55: 0.27s, avg = 0.241660s

grid 56: 1.44s, avg = 0.262973s

grid 57: 0.05s, avg = 0.259181s

grid 58: 0.12s, avg = 0.256864s

grid 59: 0.14s, avg = 0.254890s

grid 60: 1.15s, avg = 0.269882s

grid 61: 0.37s, avg = 0.271595s

grid 62: 0.05s, avg = 0.267969s

grid 63: 0.17s, avg = 0.266440s

grid 64: 0.34s, avg = 0.267639s

grid 65: 0.03s, avg = 0.264002s

grid 66: 0.20s, avg = 0.263074s

grid 67: 1.19s, avg = 0.276844s

grid 68: 0.12s, avg = 0.274608s

grid 69: 0.31s, avg = 0.275150s

grid 70: 0.28s, avg = 0.275230s

grid 71: 0.08s, avg = 0.272452s

grid 72: 0.16s, avg = 0.270835s

grid 73: 0.42s, avg = 0.272895s

grid 74: 0.09s, avg = 0.270472s

grid 75: 0.09s, avg = 0.268114s

grid 76: 0.42s, avg = 0.270128s

grid 77: 0.06s, avg = 0.267430s

grid 78: 0.33s, avg = 0.268202s

grid 79: 0.22s, avg = 0.267571s

grid 80: 0.08s, avg = 0.265202s

grid 81: 0.20s, avg = 0.264431s

grid 82: 0.08s, avg = 0.262158s

grid 83: 0.50s, avg = 0.265014s

grid 84: 0.19s, avg = 0.264087s

grid 85: 0.95s, avg = 0.272176s

grid 86: 0.19s, avg = 0.271188s

grid 87: 0.05s, avg = 0.268609s

grid 88: 0.34s, avg = 0.269456s

grid 89: 0.55s, avg = 0.272564s

grid 90: 0.20s, avg = 0.271788s

grid 91: 0.12s, avg = 0.270173s

grid 92: 0.05s, avg = 0.267745s

grid 93: 0.14s, avg = 0.266376s

grid 94: 0.28s, avg = 0.266529s

grid 95: 0.06s, avg = 0.264381s

grid 96: 0.41s, avg = 0.265852s

grid 97: 0.30s, avg = 0.266167s

grid 98: 0.47s, avg = 0.268226s

grid 99: 0.03s, avg = 0.265832s

grid 100: 0.42s, avg = 0.267386s

grid 2: 0.11s, avg = 0.179401s

grid 3: 0.23s, avg = 0.197601s

grid 4: 0.09s, avg = 0.171601s

grid 5: 0.45s, avg = 0.227761s

grid 6: 0.06s, avg = 0.200201s

grid 7: 0.16s, avg = 0.193887s

grid 8: 0.08s, avg = 0.179401s

grid 9: 0.45s, avg = 0.209735s

grid 10: 0.06s, avg = 0.195001s

grid 11: 0.44s, avg = 0.216983s

grid 12: 0.11s, avg = 0.208001s

grid 13: 0.73s, avg = 0.248402s

grid 14: 0.11s, avg = 0.238459s

grid 15: 0.33s, avg = 0.244402s

grid 16: 0.14s, avg = 0.237902s

grid 17: 0.80s, avg = 0.270708s

grid 18: 0.22s, avg = 0.267802s

grid 19: 0.09s, avg = 0.258633s

grid 20: 0.47s, avg = 0.269102s

grid 21: 0.11s, avg = 0.261487s

grid 22: 0.16s, avg = 0.256693s

grid 23: 0.05s, avg = 0.247567s

grid 24: 0.66s, avg = 0.264552s

grid 25: 0.12s, avg = 0.258962s

grid 26: 0.19s, avg = 0.256202s

grid 27: 0.31s, avg = 0.258268s

grid 28: 0.17s, avg = 0.255173s

grid 29: 0.09s, avg = 0.249602s

grid 30: 0.30s, avg = 0.251162s

grid 31: 0.17s, avg = 0.248595s

grid 32: 0.08s, avg = 0.243264s

grid 33: 0.76s, avg = 0.259056s

grid 34: 0.09s, avg = 0.254190s

grid 35: 0.14s, avg = 0.250939s

grid 36: 0.19s, avg = 0.249168s

grid 37: 0.06s, avg = 0.244120s

grid 38: 0.58s, avg = 0.252886s

grid 39: 0.12s, avg = 0.249602s

grid 40: 0.64s, avg = 0.259352s

grid 41: 0.11s, avg = 0.255689s

grid 42: 0.08s, avg = 0.251459s

grid 43: 0.14s, avg = 0.248876s

grid 44: 0.08s, avg = 0.244992s

grid 45: 0.06s, avg = 0.240935s

grid 46: 0.06s, avg = 0.237054s

grid 47: 0.42s, avg = 0.240972s

grid 48: 0.47s, avg = 0.245702s

grid 49: 0.25s, avg = 0.245781s

grid 50: 0.06s, avg = 0.242114s

grid 51: 0.12s, avg = 0.239813s

grid 52: 0.17s, avg = 0.238502s

grid 53: 0.42s, avg = 0.241949s

grid 54: 0.20s, avg = 0.241224s

grid 55: 0.27s, avg = 0.241660s

grid 56: 1.44s, avg = 0.262973s

grid 57: 0.05s, avg = 0.259181s

grid 58: 0.12s, avg = 0.256864s

grid 59: 0.14s, avg = 0.254890s

grid 60: 1.15s, avg = 0.269882s

grid 61: 0.37s, avg = 0.271595s

grid 62: 0.05s, avg = 0.267969s

grid 63: 0.17s, avg = 0.266440s

grid 64: 0.34s, avg = 0.267639s

grid 65: 0.03s, avg = 0.264002s

grid 66: 0.20s, avg = 0.263074s

grid 67: 1.19s, avg = 0.276844s

grid 68: 0.12s, avg = 0.274608s

grid 69: 0.31s, avg = 0.275150s

grid 70: 0.28s, avg = 0.275230s

grid 71: 0.08s, avg = 0.272452s

grid 72: 0.16s, avg = 0.270835s

grid 73: 0.42s, avg = 0.272895s

grid 74: 0.09s, avg = 0.270472s

grid 75: 0.09s, avg = 0.268114s

grid 76: 0.42s, avg = 0.270128s

grid 77: 0.06s, avg = 0.267430s

grid 78: 0.33s, avg = 0.268202s

grid 79: 0.22s, avg = 0.267571s

grid 80: 0.08s, avg = 0.265202s

grid 81: 0.20s, avg = 0.264431s

grid 82: 0.08s, avg = 0.262158s

grid 83: 0.50s, avg = 0.265014s

grid 84: 0.19s, avg = 0.264087s

grid 85: 0.95s, avg = 0.272176s

grid 86: 0.19s, avg = 0.271188s

grid 87: 0.05s, avg = 0.268609s

grid 88: 0.34s, avg = 0.269456s

grid 89: 0.55s, avg = 0.272564s

grid 90: 0.20s, avg = 0.271788s

grid 91: 0.12s, avg = 0.270173s

grid 92: 0.05s, avg = 0.267745s

grid 93: 0.14s, avg = 0.266376s

grid 94: 0.28s, avg = 0.266529s

grid 95: 0.06s, avg = 0.264381s

grid 96: 0.41s, avg = 0.265852s

grid 97: 0.30s, avg = 0.266167s

grid 98: 0.47s, avg = 0.268226s

grid 99: 0.03s, avg = 0.265832s

grid 100: 0.42s, avg = 0.267386s

2x(6+6+5):

**Hidden Text:**Show

grid 1: 1.06s, avg = 1.060807s

grid 2: 1.01s, avg = 1.037407s

grid 3: 0.89s, avg = 0.988006s

grid 4: 0.47s, avg = 0.858006s

grid 5: 1.50s, avg = 0.985926s

grid 6: 0.16s, avg = 0.847605s

grid 7: 1.15s, avg = 0.891434s

grid 8: 0.80s, avg = 0.879456s

grid 9: 2.20s, avg = 1.026140s

grid 10: 0.08s, avg = 0.931326s

grid 11: 1.84s, avg = 1.014006s

grid 12: 0.94s, avg = 1.007506s

grid 13: 2.56s, avg = 1.126807s

grid 14: 1.09s, avg = 1.124321s

grid 15: 2.90s, avg = 1.242808s

grid 16: 0.69s, avg = 1.208033s

grid 17: 5.29s, avg = 1.448056s

grid 18: 0.89s, avg = 1.417009s

grid 19: 0.92s, avg = 1.390872s

grid 20: 2.65s, avg = 1.453929s

grid 21: 1.17s, avg = 1.440409s

grid 22: 0.33s, avg = 1.389827s

grid 23: 0.11s, avg = 1.334148s

grid 24: 3.53s, avg = 1.425459s

grid 25: 1.22s, avg = 1.417113s

grid 26: 1.11s, avg = 1.405209s

grid 27: 1.36s, avg = 1.403431s

grid 28: 1.08s, avg = 1.391752s

grid 29: 1.08s, avg = 1.380878s

grid 30: 1.25s, avg = 1.376449s

grid 31: 1.05s, avg = 1.365764s

grid 32: 0.37s, avg = 1.334784s

grid 33: 1.15s, avg = 1.329318s

grid 34: 0.41s, avg = 1.302150s

grid 35: 0.97s, avg = 1.292580s

grid 36: 0.87s, avg = 1.280942s

grid 37: 0.12s, avg = 1.249694s

grid 38: 0.80s, avg = 1.237745s

grid 39: 0.33s, avg = 1.214408s

grid 40: 2.68s, avg = 1.251128s

grid 41: 0.44s, avg = 1.231266s

grid 42: 0.25s, avg = 1.207893s

grid 43: 0.70s, avg = 1.196129s

grid 44: 0.09s, avg = 1.171071s

grid 45: 0.31s, avg = 1.151981s

grid 46: 0.28s, avg = 1.133042s

grid 47: 1.19s, avg = 1.134160s

grid 48: 1.79s, avg = 1.147907s

grid 49: 1.70s, avg = 1.159183s

grid 50: 0.14s, avg = 1.138807s

grid 51: 0.33s, avg = 1.122901s

grid 52: 1.64s, avg = 1.132807s

grid 53: 1.36s, avg = 1.137041s

grid 54: 0.81s, avg = 1.131007s

grid 55: 1.22s, avg = 1.132567s

grid 56: 3.70s, avg = 1.178365s

grid 57: 0.19s, avg = 1.160976s

grid 58: 1.00s, avg = 1.158173s

grid 59: 0.95s, avg = 1.154672s

grid 60: 11.76s, avg = 1.331469s

grid 61: 1.29s, avg = 1.330868s

grid 62: 0.33s, avg = 1.314686s

grid 63: 0.81s, avg = 1.306694s

grid 64: 0.76s, avg = 1.298221s

grid 65: 0.14s, avg = 1.280408s

grid 66: 0.47s, avg = 1.268099s

grid 67: 3.24s, avg = 1.297602s

grid 68: 0.27s, avg = 1.282420s

grid 69: 2.03s, avg = 1.293226s

grid 70: 1.00s, avg = 1.289014s

grid 71: 0.70s, avg = 1.280746s

grid 72: 0.33s, avg = 1.267508s

grid 73: 2.85s, avg = 1.289252s

grid 74: 0.98s, avg = 1.285111s

grid 75: 0.58s, avg = 1.275672s

grid 76: 1.97s, avg = 1.284750s

grid 77: 0.33s, avg = 1.272320s

grid 78: 1.68s, avg = 1.277608s

grid 79: 0.30s, avg = 1.265188s

grid 80: 0.16s, avg = 1.251323s

grid 81: 1.05s, avg = 1.248778s

grid 82: 0.30s, avg = 1.237164s

grid 83: 4.98s, avg = 1.282215s

grid 84: 0.73s, avg = 1.275680s

grid 85: 3.82s, avg = 1.305637s

grid 86: 1.23s, avg = 1.304785s

grid 87: 0.39s, avg = 1.294270s

grid 88: 4.21s, avg = 1.327427s

grid 89: 3.28s, avg = 1.349321s

grid 90: 0.34s, avg = 1.338142s

grid 91: 0.45s, avg = 1.328409s

grid 92: 0.19s, avg = 1.316004s

grid 93: 0.83s, avg = 1.310744s

grid 94: 1.26s, avg = 1.310242s

grid 95: 0.67s, avg = 1.303512s

grid 96: 1.54s, avg = 1.306021s

grid 97: 1.87s, avg = 1.311856s

grid 98: 0.89s, avg = 1.307543s

grid 99: 0.11s, avg = 1.295439s

grid 100: 2.25s, avg = 1.304948s

grid 2: 1.01s, avg = 1.037407s

grid 3: 0.89s, avg = 0.988006s

grid 4: 0.47s, avg = 0.858006s

grid 5: 1.50s, avg = 0.985926s

grid 6: 0.16s, avg = 0.847605s

grid 7: 1.15s, avg = 0.891434s

grid 8: 0.80s, avg = 0.879456s

grid 9: 2.20s, avg = 1.026140s

grid 10: 0.08s, avg = 0.931326s

grid 11: 1.84s, avg = 1.014006s

grid 12: 0.94s, avg = 1.007506s

grid 13: 2.56s, avg = 1.126807s

grid 14: 1.09s, avg = 1.124321s

grid 15: 2.90s, avg = 1.242808s

grid 16: 0.69s, avg = 1.208033s

grid 17: 5.29s, avg = 1.448056s

grid 18: 0.89s, avg = 1.417009s

grid 19: 0.92s, avg = 1.390872s

grid 20: 2.65s, avg = 1.453929s

grid 21: 1.17s, avg = 1.440409s

grid 22: 0.33s, avg = 1.389827s

grid 23: 0.11s, avg = 1.334148s

grid 24: 3.53s, avg = 1.425459s

grid 25: 1.22s, avg = 1.417113s

grid 26: 1.11s, avg = 1.405209s

grid 27: 1.36s, avg = 1.403431s

grid 28: 1.08s, avg = 1.391752s

grid 29: 1.08s, avg = 1.380878s

grid 30: 1.25s, avg = 1.376449s

grid 31: 1.05s, avg = 1.365764s

grid 32: 0.37s, avg = 1.334784s

grid 33: 1.15s, avg = 1.329318s

grid 34: 0.41s, avg = 1.302150s

grid 35: 0.97s, avg = 1.292580s

grid 36: 0.87s, avg = 1.280942s

grid 37: 0.12s, avg = 1.249694s

grid 38: 0.80s, avg = 1.237745s

grid 39: 0.33s, avg = 1.214408s

grid 40: 2.68s, avg = 1.251128s

grid 41: 0.44s, avg = 1.231266s

grid 42: 0.25s, avg = 1.207893s

grid 43: 0.70s, avg = 1.196129s

grid 44: 0.09s, avg = 1.171071s

grid 45: 0.31s, avg = 1.151981s

grid 46: 0.28s, avg = 1.133042s

grid 47: 1.19s, avg = 1.134160s

grid 48: 1.79s, avg = 1.147907s

grid 49: 1.70s, avg = 1.159183s

grid 50: 0.14s, avg = 1.138807s

grid 51: 0.33s, avg = 1.122901s

grid 52: 1.64s, avg = 1.132807s

grid 53: 1.36s, avg = 1.137041s

grid 54: 0.81s, avg = 1.131007s

grid 55: 1.22s, avg = 1.132567s

grid 56: 3.70s, avg = 1.178365s

grid 57: 0.19s, avg = 1.160976s

grid 58: 1.00s, avg = 1.158173s

grid 59: 0.95s, avg = 1.154672s

grid 60: 11.76s, avg = 1.331469s

grid 61: 1.29s, avg = 1.330868s

grid 62: 0.33s, avg = 1.314686s

grid 63: 0.81s, avg = 1.306694s

grid 64: 0.76s, avg = 1.298221s

grid 65: 0.14s, avg = 1.280408s

grid 66: 0.47s, avg = 1.268099s

grid 67: 3.24s, avg = 1.297602s

grid 68: 0.27s, avg = 1.282420s

grid 69: 2.03s, avg = 1.293226s

grid 70: 1.00s, avg = 1.289014s

grid 71: 0.70s, avg = 1.280746s

grid 72: 0.33s, avg = 1.267508s

grid 73: 2.85s, avg = 1.289252s

grid 74: 0.98s, avg = 1.285111s

grid 75: 0.58s, avg = 1.275672s

grid 76: 1.97s, avg = 1.284750s

grid 77: 0.33s, avg = 1.272320s

grid 78: 1.68s, avg = 1.277608s

grid 79: 0.30s, avg = 1.265188s

grid 80: 0.16s, avg = 1.251323s

grid 81: 1.05s, avg = 1.248778s

grid 82: 0.30s, avg = 1.237164s

grid 83: 4.98s, avg = 1.282215s

grid 84: 0.73s, avg = 1.275680s

grid 85: 3.82s, avg = 1.305637s

grid 86: 1.23s, avg = 1.304785s

grid 87: 0.39s, avg = 1.294270s

grid 88: 4.21s, avg = 1.327427s

grid 89: 3.28s, avg = 1.349321s

grid 90: 0.34s, avg = 1.338142s

grid 91: 0.45s, avg = 1.328409s

grid 92: 0.19s, avg = 1.316004s

grid 93: 0.83s, avg = 1.310744s

grid 94: 1.26s, avg = 1.310242s

grid 95: 0.67s, avg = 1.303512s

grid 96: 1.54s, avg = 1.306021s

grid 97: 1.87s, avg = 1.311856s

grid 98: 0.89s, avg = 1.307543s

grid 99: 0.11s, avg = 1.295439s

grid 100: 2.25s, avg = 1.304948s