問題
5 文字以上256 文字未満の文字列が与えられた時,その中で複数回登場している最長パターンを見つけ,その長さを答えるプログラムを作成して下さい.
例えば,
UABCDXYZABCDX03ABC
という文字列が与えられたとすると,
UABCDXYZABCDX03ABC
というように “ABCDX” が二回登場しており,これが最も長いパターンということになります.(“ABC” というパターンも三回登場していますが最長ではありません.)よって,答えは 5 となります.(※ “ABCDX” = 5 文字)
なお,パターンどうしの重なりは考えないものとします.例えば ABBBBC が与えられたとすると最長パターンは “BB” と考えます(※ ABB BBC).“BBB” というパターンにすると重複が起こってしまうため,ここでは対象外とします.
入力データでは,5 文字以上 256 文字未満の文字列が一行で与えられます.使用できる文字に制限はありませんが,改行だけは対象外とします.
出力では,上述したように最長パターンの長さを示して下さい.ただし,少なくとも二文字以上でなければパターンとは見なしません.パターンが存在しない場合は0 と出力して下さい.
実行例
入力
UABCDXYZABCDX03ABC
出力
5