timus 2002. Test Task
来源:互联网 发布:linux c程序编译 编辑:程序博客网 时间:2024/05/18 23:57
#include <iostream>#include <string>#include <set>using namespace std;class Person { public: Person(string name, string password) : name(name), password(password) { } bool operator < (const Person& next) const //don't forget const { return name < next.name; } bool operator == (const Person& next) const { return name == next.name; } const string getPassward() const { return password; }private: string name; string password;};int main(){ int n; while (cin >> n) { set<Person> regPerson; set<Person> logedPerson; while (n--) { string operation; cin >> operation; if (operation == "register") { string name, password; cin >> name >> password; Person p(name, password); if (regPerson.empty()) { regPerson.insert(p); cout << "success: new user added\n"; continue; } set<Person>::iterator it = regPerson.find(p); if (it == regPerson.end()) { cout << "success: new user added\n"; regPerson.insert(p); } else { cout << "fail: user already exists\n"; } } else if (operation == "login") { string name, password; cin >> name >> password; Person p(name, password); set<Person>::iterator it = regPerson.find(p); if (logedPerson.empty()) { if (it == regPerson.end()) { cout << "fail: no such user\n"; } else { if (p.getPassward() != it->getPassward()) { cout << "fail: incorrect password\n"; } else { cout << "success: user logged in\n"; logedPerson.insert(p); } } continue; } if (it == regPerson.end()) { cout << "fail: no such user\n"; } else { if (p.getPassward() != it->getPassward()) { cout << "fail: incorrect password\n"; } else { if (logedPerson.find(p) != logedPerson.end()) { cout << "fail: already logged in\n"; } else { cout << "success: user logged in\n"; logedPerson.insert(p); } } } } else if (operation == "logout") { string name; cin >> name; Person p(name, ""); set<Person>::iterator it = regPerson.find(p); if (it == regPerson.end()) { cout << "fail: no such user\n"; } else { set<Person>::iterator it = logedPerson.find(p); if (it == logedPerson.end()) { cout << "fail: already logged out\n"; } else { cout << "success: user logged out\n"; logedPerson.erase(it); } } } } } return 0;}
0 0
- timus 2002. Test Task
- Timus 2002. Test Task 一个登陆系统
- URAL 2002. Test Task (阅读理解)
- configuring gradle test task
- URAL 2002. Test Task(登陆模拟 map )
- ural 2002. Test Task 简单模拟 stl map的使用
- Task #4 - Deploy and test
- Template for Writing Test Task 1 in IELTS
- timus 1017
- timus 1073
- TASK
- Task
- Task
- TASK
- task
- Task
- task
- Task,
- undefined reference to `pow'
- STL之priority_queue
- Android调用系统的ContentProvider
- ANDROID自定义视图——onLayout源码 流程 思路详解
- C#反射
- timus 2002. Test Task
- ANDROID自定义视图——onMeasure,MeasureSpec源码 流程 思路详解
- 下载电影、字幕的好地方
- 对于求n个数的gcd的想法
- Android Studio VS Eclipse (还在用Eclipse?你OUT了!)
- 黑马程序员之IOS学习总结——05 C语言中的指针
- xamarn.android binding parse sdk for a week to work
- solaris10的系统常用检查命令
- timus 2031. Overturned Numbers