ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 2002. Тестовое задание

c++ AC with map
Послано amirshir 14 янв 2015 22:30
#include <iostream>
#include <map>
using namespace std;
const string a1="register",a2="login",a3="logout",
a4="fail: user already exists",a5= "success: new user added",
a6="fail: no such user",a7="fail: incorrect password",a8="fail: already logged in",a9="success: user logged in",
a10="fail: no such user",a11="fail: already logged out",a12="success: user logged out" ;
class ko
{
public:
     bool register1,login ;
     string password ;
     ko()
     {
          register1=false ;
          login=false ;
     }
};
short n;
map <string,ko> l98 ;
void q1()
{
     string ji,ko ;
     cin>>ji>>ko ;
     if(l98[ji].register1)
          cout<<a4 ;
     else
     {
          l98[ji].register1=true ;
          l98[ji].password=ko ;
          cout<<a5 ;
     }
}
void q2()
{
     string ji,ko ;
     cin>>ji>>ko ;
     if(l98[ji].register1)
     {
          if(l98[ji].login && l98[ji].password==ko)
               cout<<a8 ;
          else if(l98[ji].password==ko)
          {
               cout<<a9 ;
               l98[ji].login=true ;
          }
          else
               cout<<a7 ;
     }
     else
          cout<<a6 ;
}
void q3()
{
      string ji ;
     cin>>ji ;
     if(l98[ji].register1)
     {
          if(l98[ji].login)
          {
               l98[ji].login=false ;
               cout<<a12 ;
          }
          else
               cout<<a11 ;
     }
     else
          cout<<a10 ;
}
void f(string h)
{
     if(h==a1)
          q1();
     else if(h==a2)
          q2() ;
     else
          q3() ;
}
int main()
{
     cin>>n ;
     for(short i=0;i<n;i++)
     {
          string o;
          cin>>o ;
          f(o) ;
          cout<<endl ;
     }

}