Project Euler 459(2)

http://projecteuler.net/index.php?section=problems&id=459

この問題は唯一解けずに残っている問題である。
とりあえず一次元ならどうかと考えているのだがわからない。前のコードを書いたときはPyPyで21まで答えが出た。今回少し工夫してスピードアップし28まで出せるようにした。C+++なら33くらいまでいけるはず。しかし、法則性がわからない。こういう問題は何か保存則が成り立つと思うのだが。