python3 -c "import random,time,math R=7 C=11 N=77 W=[] for r in range(R): for c in range(C): W.append([u*C+v for u in range(max(0,r-1),min(R,r+2)) for v in range(max(0,c-1),min(C,c+2))]) WI=[[] for _ in range(N)] for k,w in enumerate(W): for i in w: WI[i].append(k) def init(): o=list(range(N)) o.sort(key=lambda i:(len(WI[i]),random.random())) a=[0]*N for j,i in enumerate(o): a[i]=N-j return a def calc(a): return [sum(a[i] for i in w) for w in W] def run(t,sec,a0): a=a0[:] if a0 else init() S=calc(a) ce=sum(max(0,x-t) for x in S) ba=a[:] bS=S[:] be=ce T=50.0 end=time.time()+sec it=0 while time.time()