JOI logo
第21回日本情報オリンピック 一次予選(第1回)

2021年9月21日
情報オリンピック日本委員会

問題
  複雑な文字列 (Complex String) (配点 100点)
  時間制限 : 2 sec / メモリ制限 : 1024 MB

解説

「'A' が存在するか」「'B' が存在するか」...「'E' が存在するか」を管理する変数 a, b, ..., e を用意し,はじめは全て 0 にしておく.

S の各文字を順々に見て,その文字に対応する変数に 1 を代入することで,全て見た後には各変数が「文字が存在すれば 1,さもなくば 0」という状態になり,これらの和がそのまま種類数となる.

これはループ (繰り返し処理) によって実現でき,たとえば C/C++ であれば for や while といった構文で実装できる.実装例を参考にして欲しい.