Official
D - Unauthorized Editorial
by
D - Unauthorized Editorial
by
MMNMM
この問題は、「高橋くんが現在ログインしている状態にあるか」のフラグを持ちながら操作を処理していくことで解くことができます。
実装例は以下のようになります。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
int N;
cin >> N;
// 現在ログインしているかを表すフラグ:はじめはログインしていない
bool logged_in = false;
// 認証エラーを返された回数
int unauthorized = 0;
for (int i = 0; i < N; ++i) {
string s;
cin >> s;
// ログイン操作なら、フラグを true にする
if (s == "login") {
logged_in = true;
}
// ログアウト操作なら、フラグを false にする
if (s == "logout") {
logged_in = false;
}
// ログインしていない状態で非公開ページにアクセスしようとしたとき、認証エラーを返された回数を増やす
if (s == "private" && !logged_in) {
unauthorized++;
}
}
cout << unauthorized << endl;
return 0;
}
N = int(input())
# 現在ログインしているかを表すフラグ:はじめはログインしていない
logged_in = False
# 認証エラーを返された回数
unauthorized = 0
for i in range(N):
s = input()
# ログイン操作なら、フラグを true にする
if s == 'login':
logged_in = True
# ログアウト操作なら、フラグを false にする
if s == 'logout':
logged_in = False
# ログインしていない状態で非公開ページにアクセスしようとしたとき、認証エラーを返された回数を増やす
if s == 'private' and not logged_in:
unauthorized += 1
print(unauthorized)
posted:
last update: