競技プログラミング用 知識集積所

ABC401B - Unauthorized

最終更新:

sport_programming

- view
管理者のみ編集可


問題


必要知識

A問題レベルのものは省略
  • 特になし

考え方

N回の入力があるので、forループで1回ずつ処理をしていく。
入力を受け取り、その内容でif分岐。
  • loginの場合
状態をloginに変える。
  • logoutの場合
状態をlogoutに変える。
  • publicの場合
特に何もしない。
  • privateの場合
状態を確認して、もしlogoutだったらエラー数のカウントを1増やす。

以上の処理を行うためには、今の状態を管理する変数とエラー数のカウントを管理する変数が必要。
この2つはループの外側で宣言する必要がある。
前者はbool型を使って、trueならlogin状態、falseならlogout状態と決めておく。

解答例


注意点

特殊な状況に注意

すでにloginしている状態でloginする、すでにlogoutしている状態でlogoutする、は実装によっては変なことを起こしかねない。
そのコードでどういう挙動をするかは確認しておくこと。

別解

ウィキ募集バナー