TSG LIVE! 14 プログラミングコンテスト
コンテスト日時
2025/05/25 (Su) 16:00 - 17:40

J - kitaku

Earlgray
2
s
1024
MB
550

問題文

英小文字のみからなる文字列 $S$ が与えられます。$S$ に対して以下の操作をちょうど $1$ 回だけ行います。

  • $S$ に含まれる (連続するとは限らない) 部分列 ki を $1$ つ選び、この ki に対して以下のいずれかを行う
    • ko に置き換え、i を削除する
    • io に置き換え、k を削除する

操作後の文字列としてあり得るものの種類数を求めてください。ただし、操作の方法が異なっていても操作後の文字列が同じ場合は $1$ 種類と数えます。

ここで文字列 $S$ の (連続するとは限らない) 部分列とは、$S$ から $0$ 個以上の文字を選び、それらを順番を保ったまま繋ぎ合わせてできる文字列のことです。例えば arm, goth, algorithmalgorithm の (連続するとは限らない) 部分列ですが、x, math, gorillaalgorithm の (連続するとは限らない) 部分列ではありません。

制約

  • $S$ は英小文字からなる文字列である
  • $S$ の長さは $2$ 以上 $2\times10^5$ 以下である
  • $S$ に対して問題の条件を満たす操作方法が少なくとも $1$ つ存在する

入力

入力は以下の形式で標準入力から与えられる。

$S$

出力

答えを $1$ 行に出力せよ。

入力例 1
kisei
出力例 1
3

操作後の文字列としてあり得るのは osei, oise, iseo の $3$ 種類です。

入力例 2
kitaku
出力例 2
1
提出
C++23 (g++ 12.2.0)