Timus №2002

Условие и начальные данные можно посмотреть по ссылке.

Тест:

исходные данные результат
6
register alena 223344 success: new user added
login alena 223 fail: incorrect password
login alena 223344 success: user logged in
login john 454545 fail: no such user
logout alena success: user logged out
logout alena fail: already logged out

Решение:

Для решения этой задачи я использовала два ассоциативных массива. Первый (usersAndPasswords) хранит в качестве ключа имя зарегистрированного пользователя, а в качестве значения — пароль этого пользователя; второй (loggedInUsers) хранит вошедших на форум пользователей, а в качестве значения всегда единица, потому что мы никак не используем значение, нам важно только есть ли имя пользователя в этом массиве или нет.

Когда пользователь входит на форум мы добавляем его имя как ключ в массив loggedInUsers. А когда он выходит мы удаляем его из этого массива. Для проверки есть ли пользователь на форуме или он уже вышел, мы проверяем есть ли он в массиве loggedInUsers или нету.

Ссылка на решение на ideone.

Ссылка на засчитанное решение на http://acm.timus.ru/.

One thought on “Timus №2002

  1. Если «в качестве значения всегда единица, потому что мы никак не используем значение, нам важно только есть ли имя пользователя в этом массиве или нет.» — то, наверное, это не ассоциативный массив, а множество. А то Вы изучили один тип данных, и используете его где уместно и где нет.

    Впрочем, уже не особо времени — конец семестра, засчитаю задачу.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *