ホームページ  >  記事  >  ウェブフロントエンド  >  Codeforces ラウンド #277 (ディビジョン 2)-C.回文変換(贪心)_html/css_WEB-ITnose

Codeforces ラウンド #277 (ディビジョン 2)-C.回文変換(贪心)_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:53:471203ブラウズ

回文変換

テストごとの制限時間

1 秒

テストごとのメモリ制限

256 メガバイト

入力

標準入力

出力

標準出力

ナムは遊んでいます彼のコンピュータ上の文字列。この文字列は、n 個の小文字の英字で構成されます。これでは意味がないので、Nam は文字列をより美しくすること、つまり、左、右、上、下の 4 つの矢印キーを使用して文字列を回文にすることにしました

文字列の何らかの記号を指すカーソルがあります。現在、カーソルが位置 i (1?≤?i?≤?n、文字列は 1 から始まるインデックスを使用します) にあるとします。左右の矢印キーは文字列上でカーソルを移動するために使用されます。文字列は循環的です。つまり、Nam が左矢印キーを押すと、i?>?1 の場合はカーソルが i?-?1 の位置に移動し、それ以外の場合は文字列の末尾 (つまり位置 n) に移動します。右矢印キーを押したときも同じことが当てはまります (i?=?n の場合、カーソルは文字列の先頭に表示されます)。

Nam が上矢印キーを押すと、テキスト カーソルが指している文字が に変わります。英語のアルファベットの次の文字 (アルファベットも循環的であると仮定します。つまり、「z」の後に「a」が続きます)。下矢印キーを押したときも同じことが当てはまります。

最初、テキスト カーソルは p の位置にあります。

ナムにはやるべき宿題がたくさんあるので、できるだけ早くこれを完了したいと考えています。文字列を回文にするために矢印キーを押す最小回数を計算して彼を手伝ってもらえますか?

入力

最初の行には、スペースで区切られた 2 つの整数 n (1?≤?n?≤?105) が含まれています。と、p (1?≤?p?≤?n)、Nam の文字列の長さとテキスト カーソルの初期位置です。

次の行には、Nam の文字列の小文字が n 個含まれています。

出力

出力文字列を回文に変更するために必要な最小押下回数。

サンプル テスト

入力

8 3aeabcaez

出力

文字列が次のように読める場合、その文字列は回文です。同じ順方向または逆方向です。

サンプル テストでは、最初の Nam の文字列は次のとおりです: (カーソル位置は太字で表示されます)。

最適な解決策では、Nam は次の 6 つの手順を実行できます:

結果は、回文になります。





解思路:贪心。ただ一つの状況だけを考えてください、例として、絶え間なく心は考えます適合边界近,如此往复即可能です。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。