>>401
のコードは間違っている。
EvalRouteにおいて
int idxn; を追加して
idx = Route[i];
idxn = Route[i + 1];
dx = X[idx] - X[idxn];
dy = Y[idx] - Y[idxn];
じゃないとだめだ。
後、最小経路だけ知りたいので
全経路分のメモリ確保とか不要だよね。
http://codepad.org/kR42UrOn
修正したよ。