配点: 点
riano君は 匹の動物( と順に番号がついています)を連れて旅をしており、大きな川にさしかかりました。 この川を渡るには渡し舟を使うしかありませんが、舟にはriano君のほかに動物 匹までしか一度に乗れません。
厄介なことに、riano君の連れている動物たちの何組かは、好物と天敵の関係にあります。 動物 が動物 の天敵であるというとき、 この 匹が川の同じ側の岸にいて、riano君がその場にいない場合、 が を食べてしまうということを意味します。 同じことを、動物 が動物 の好物である、とも表現することにします。 なお、 と が互いを好物と考えている場合も含めて、複数の「好物と天敵の関係」が存在する場合には、ランダムに食べられる順が決められ、そのような関係がなくなるまで残った動物のみが生き残ります。
riano君の連れている動物たちの中には全部で 個の関係があり、 が の天敵である(すなわち、 が の好物である)ことが分かっています 。 ただし、各動物について、天敵と好物はそれぞれ高々 匹ずつしかいないこと、 および天敵も好物もいない動物は存在しないことが保証されます。 また、riano君が舟に乗らず、動物だけを乗せて川を渡らせることはできません。
riano君は、全ての動物が無事なまま、自身と全ての動物を川の向こう岸に渡したいと考えています。 これが可能であるような最小の を求めてください。 また、そのような渡し舟がある場合、riano君は最小で何度、舟で川を横切る必要があるでしょうか。
入力は以下の形式で標準入力から与えられます。
...
はじめに題意の の最小値を出力し、空白区切りで、そのような に対してriano君が舟で川を横切る回数の最小値を出力してください。
3 2 1 2 2 3
1 7
動物 と 、 と はそれぞれ同時に岸に残すことができません。 このとき、 で次のような手順が可能であり、これが最適です。
① を向こう岸に渡す( と は一緒に残しても大丈夫です)
② riano君だけで戻ってくる
③ を向こう岸に渡す(向こう岸に がいますが、riano君が離れなければ大丈夫です)
④ を連れて戻ってくる
⑤ を元の岸に残し、 を向こう岸に渡す(向こう岸に と がいる状態になります)
⑥ riano君だけで戻ってくる
⑦ を向こう岸に渡し、全ての動物とともに川を渡ることができました
5 4 1 2 3 4 4 5 5 3
3 3
動物 、、 はいわゆる三すくみの天敵関係を持っていますが、これらを岸に残した場合もランダムにいずれかの動物が食べられてしまうことに注意してください。