|
ウミカ |
何をするつもりなんですか!!!!! |
|
アラタ |
決まってるでしょ!この神木祭を……私たち魍魎ズの手に取り戻すの! |
|
アラタ |
神木祭は年に一度だけ開かれる、百鬼夜行の平和と安寧を祈るお祭り……。 |
|
アラタ |
そんなお祭りに!いくら招待されたからって、よそ者のゲヘナ学園の生徒が入り込むなんて嫌なの! |
|
ツバキ |
……具体的に、何をどうするつもり? |
|
アラタ |
ふふふ……。聞いて驚かないでよ。泣く子もびっくりして泣き止むほど、恐ろしくて緻密で、しかも偉大な計画を立ててきたんだから……。 |
|
|
1 行目に、広場の大きさを表す正の整数 が与えられる。
2 行目からの 行には、広場の様子を表す長さ の文字列が与えられる。 はウミカのいるマス、 はアラタのいるマス、 は障害物のあるマス、 は空いているマスを表す。
1 行目に、アラタを捕まえるために必要なロープの長さの最小値を出力せよ。
2 行目に、その最小の長さのロープを回収するために必要な力の合計の最小値を出力せよ。
アラタ
|
それはずばり! |
|
アラタ |
神木祭最大のクライマックスとも言える!夜の花火大会で使う、あの超巨大な花火を……! |
|
アラタ |
明るい真っ昼間に!全部打ち上げちゃうの! |
|
ウミカ |
絶対に!ダメです、魍魎ズ! |
|
ウミカ |
ゲヘナ学園の皆さんのためにも、先生のためにも……私は神木祭を守ります! |
|
ウミカ |
絶対に、絶対に、花火には指一本触れさせませんから! |
|
フィーナ |
お、落ち着くのデス、ウミカ! |
|
カエデ |
う、えっと、その。大丈夫かな?ここでドタバタしてもいいのかな?神木祭なのに?広場なのに? |
|
ツバキ |
……やるときはやらなきゃ。そうしないと……もっと大変なことになる。 |
先生!魍魎ズとアラタが神木祭を台無しにする前に、止めなければいけません!ここで戦うと花火に火がつくかもしれないので……修行部の皆さんに手伝っていただいて、ロープでアラタを捕まえようと思います。
広場は のマス目になっています。私は今、 行 列のマスの中心にいて、アラタは広場のどこかのマスの中心にいます。皆さんに手伝っていただけば、マスの中心から隣のマスの中心へ移動しながらロープを置けそうです。修行部の皆さんは、上下左右に隣接するマスにだけ移動できます。
修行部の皆さんが 行 列から出発し、合計 個のマス , , , を順に訪れたとします。
ここでは、ロープを構成する線分の本数、つまり をロープの長さと定義します。
アラタをロープで捕まえたら、私はすぐにロープを引っ張って回収しなければなりません。でも、曲がっているところが多いほど引っかかってしまい、引っ張るのに大きな力が必要になります。力がかかると回収が遅れ、その間にアラタが逃げたり、状況がさらに危険になったりするかもしれないので、力の合計も最小にしたいんです。
現在のロープを構成する点が , , , のとき、ロープを一度引っ張ると、次のことが起こります。
端点 が取り除かれ、残った点 , , , だけでロープを構成します。
この操作を繰り返し、点 だけが残るまでロープを引っ張って、すべて回収しなければなりません。
魍魎ズが何かする前に、できるだけ早くアラタを捕まえなくてはいけません。そこで、まずアラタを捕まえるロープの長さを最小にし、そのようなロープの中で、最後まで回収するために必要な力の合計を最小にします。この二つの値を最小にする修行部の皆さんの移動方法を見つけなければなりません。先生、手伝っていただけますか?
UA#.ウミカは必ず 行 列にのみ存在し、アラタのいるマスはちょうど一つである。
アラタを捕まえられる入力のみが与えられる。
この回収動作には、引っ張る直前のロープの曲がりの数だけ力が必要です。