You can abuse the fact that assists can be calculated on the diagonal of the grid, if you count the robot-zone combinations along a diagonal, you can find the number of assits for a given column arrangement. If you also swap the columns around, and take the max, you can find the total assists.
Here's a quick example in python:
Code:
#~/usr/bin/env python
import sys
def main ():
if (len(sys.argv) < 1 + (3*3)):
return
grid = [[0,0,0], [0,0,0], [0,0,0]]
for i in range(0, 3):
for j in range(0, 3):
grid[i][j] = int(sys.argv[1+(i*3)+j])
print "The combination:"
printgrid(grid)
print "Has", calcAssists(grid), "assists"
def calcAssists (grid):
asstCombs = [0]*(3*2*1) # 3! Combinations
asstCombs[0] = calcDiagonal([grid[0], grid[1], grid[2]])
asstCombs[1] = calcDiagonal([grid[0], grid[2], grid[1]])
asstCombs[2] = calcDiagonal([grid[1], grid[0], grid[2]])
asstCombs[3] = calcDiagonal([grid[1], grid[2], grid[0]])
asstCombs[4] = calcDiagonal([grid[2], grid[0], grid[1]])
asstCombs[5] = calcDiagonal([grid[2], grid[1], grid[0]])
return max(asstCombs)
def calcDiagonal (grid):
return (grid[0][0] + grid[1][1] + grid[2][2])
def printgrid (grid):
for i in range(0, 3):
print str(grid[i][0]), str(grid[i][1]), str(grid[i][2])
if __name__ == "__main__": main()
Hopefully you can adapt that to excel