#arc0192. [arc019_2]こだわりの名前
[arc019_2]こだわりの名前
問題文
ゲームも中盤にさしかかり、ちょうど海に出るための船を手に入れた。早く新たなダンジョンへ挑戦したいところだが、その前に船にかっこいい名前をつけねばならない。
早く先に進みたいので船の名前はデフォルトのものでいいかと思ったが、さすがにそれでは面白くないのでデフォルトの名前から 文字だけ変更することにしよう。
ところで、こういう場面でプログラミングコンテストの問題文の登場人物はなぜか「名前が回文になるようにしよう」とかいう訳のわからないこだわりを発揮することが多いのだが、私はそういう普通の登場人物とは違うのだ。私に変なこだわりはないので、船の名前は 回文でない ものにしたい。
さて、デフォルトの名前を 文字だけ変更することで、回文でない名前は何通りぐらい作ることができるのだろうか?プログラムを書いて確かめることとしよう。ちなみに船の名前として使える文字はアルファベットの大文字だけだ。
え?「回文でない名前にしたい」というのは「変なこだわり」ではないのかって?言われてみれば確かにその通りだし、やはり私はプログラミングコンテストの登場人物としての宿命から逃れることはできないのかもしれない。しかし、私のような者がこうして変なこだわりを持つことで多くの人がプログラミングコンテストを楽しんでくれるのであれば、それはそれで良いことなのだろう。
入力
入力は以下の形式で標準入力から与えられる。
- 行目には、船のデフォルトの名前 が書かれている。
- は 文字以上 文字以下のアルファベットの大文字のみからなる文字列である。
出力
デフォルトの名前から 文字を選び、その文字を別の大文字アルファベットに変更することで得られる 回文でない 文字列が何通りあるかを表す数値を 行に出力せよ。
なお、回文とは前から読んでも後ろから読んでも同じとなる文字列のことである。たとえば ANNA
, MADAM
, X
は回文だが、AB
, ARC
は回文ではない。
出力の末尾にも改行をいれること。
入力例1
ARC
出力例1
73
- 文字目の
A
を他の文字に変更する場合C
に変更するとCRC
は回文となってしまいます。- それ以外の 通り(たとえば
BRC
,XRC
など)はいずれも回文ではありません。
- 文字目の
R
を他の文字に変更する場合- どの文字に変更しても回文にはならないので 通りが考えられます。
- 文字目の
C
を他の文字に変更する場合A
に変更するとARA
は回文となってしまいます。- それ以外の 通りはいずれも回文ではありません。
したがって、答えは 通りとなります。
どれか つの文字を変更したもののみを考えること、すなわちどの文字も変更していない ARC
という名前については数えないことにも注意してください。
入力例2
S
出力例2
0
文字の文字列はすべて回文になります。
入力例3
NOLEMONNOMELON
出力例3
350