第一(n)={res=矢量(n,i,-1);res[1]=0;对于(i=1,n-1,s=选择(x->x==i,res,1);如果(#s==0,如果(res[i]>=i,c=res[i]-i;如果(#select(x->x==c,res)>0,c=资源[i]+i));如果(res[i]<i,c=资源[i]+i));如果(#s>0,c=触头(i=1,#s,s[i]-1););res[i+1]=c;); 物件}