社の橋が多すぎる場合は,逆向きの交換をする。グラフの連結性を保ちつつコストを最小にする組を選んで交換しなければならない。なるまで続ければよい。いずれの解法も,そのような方法で解けることを理解するだけでも大変な難問である。本当に解けるかどうか自信がないままプログラムを書いてみたら通ってしまったというチームがあるかも知れない。計算量でおさまるように工夫してプログラムを書くことが必要である。片方をもう片方の上に重ねることになる。求めることができればよい。それを短時間で解くにはそれなりの準備が必要である。コンテストが始まってから考えてプログラミングするのでは時間がかかりすぎる。事前に考えた数式なりプログラム片なりをノートしたものを手元に置くようにするとよいだろう。求める操作の実現はそれほど難しくない。辺と辺の交点をすべて求めておいて,二つの図形の頂点とあわせて考えることにする。図形の一番外側になるものを順にたどっていけばよい。計算誤差が絶対に生じないという理想的環境での話である。ほんの少し辺の内側や外側だと判断することがある。不正確な判断のまま進めると間違った答になってしまう。頂点数最大を条件とする問題が意地悪であることに気づくだろう。周長最大だけが条件なら,誤差に関するこのような心配は不要であった。すべての計算を実数ではなく有理数を使って行うようにすればよい。審判が書いたプログラムにも,この方針を採ったものがいくつかある。プログラミングが面倒になりすぎるかも知れない。さまざまなケースを想定して注意深くプログラミングするしかないようだ。注意を要するケースである。とった後の出来上がりの図形に関する制約条件が与えられている。この制約条件を利用して,誤差対策を部分的に簡単にすることはできる。誤差によるものだと判断して,頂点が辺に乗っていると判断して差し支えない。ケースを考慮する必要がなくなるわけではない。誤差の心配が生じるような微妙なケースは起こらないように制約を与えるのが普通である。この問題の制約は,これと同じ方針のように見えるが,実は少し違っている。微妙なケースが起こる可能性自体を排除してはいないのである。二つに分けて考えることができる。下手なやり方では候補として考えるべき位置が多くなって,時間がかかりすぎる。候補位置をいかに少なくおさえるかがポイントである。各ロボットを最上階に到達させる操作から考えよう。