問題一覧 > 通常問題

No.171 スワップ文字列(Med)

レベル : / 実行時間制限 : 1ケース 1.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 195
作問者 : なおなお
2 ProblemId : 414 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2015-11-14 17:48:25

問題文

入力に$1000$文字以内の文字列$S$が与えられる。
この文字列$S$を構成する文字のうち、「任意の隣り合う$2$つの文字を入れ替える」操作を任意回行うことができるとき、
作ることができる文字列の種類の数を$\mod 573$ で求めてください。

ただし、入力文字列$S$と同一の文字列は数に含まないものとします。
$573$は素数ではないことに注意してください。

入力

S

$1$行目に文字列$S$が与えられる。 $( 1 \leq |S| \leq 1000 ) $
文字列$S$はすべてアルファベット大文字('A'~'Z')で構成される。

出力

問題文の操作で作ることが出来る(入力文字列$S$自体を除く)文字列の種類の数を、$573$で割った余りを、
整数で出力してください。

サンプル

サンプル1
入力
ABC
出力
5

文字列"ABC"の隣り合う$2$つの文字を何度か入れ替えてできる文字列は、以下の$6$通りです。
ABC ACB
BAC BCA
CAB CBA
ただし、入力文字列自体は含まないので、"ABC"を除いた$5$種類を作ることができます。

サンプル2
入力
DDDDDD
出力
0

何度入れ替えても、"DDDDDD"以外に作ることはできません。
入力文字列自体は含まないので、"DDDDDD"を除いた$0$種類が答えです。

サンプル3
入力
ABCDEFGHIJKLMNOPQRSTUVWXYZ
出力
551

$403291461126605635583999999$種類の文字列を作ることができます。
$\mod 573$を忘れずに

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。