You are supposed to implement the functions of account "Log in" and "Register" for the most popular instant messager QQ. The most challenging part is that QQ now has more than a billion users.
Input Specification:
Each input file contains one test case. For each case, the first line contains an integer N
(≤) - the total number of queries. Then N
lines follow, each contains a query in the format Command QQ_No Password
where Command
is either R
(meaning to register a new account, and hence followed by a new account number and a password), or L
(meaning to log in with an existing account, and hence followed by the account number and the password); QQ_No
is an integer that is greater than 1000 and no more than 10 digits long; and Password
is a string with no less than 6 and no more than 16 characters without any space.
Output Specification:
For each test case, print the corresponding message for each query in a line. The messages are:
- If a new account is successfully registered, output "Register Successful";
- If the new registering account number already exists, output "ERROR: Account Number Already Exists";
- If log in successfully, output "Log in Successful";
- If the log in account does not exist, output "ERROR: Account Not Exist";
- If log in with a wrong password, output "ERROR: Wrong Password".
Sample Input:
5
L 1234567890 myQQ@qq.com
R 1234567890 myQQ@qq.com
R 1234567890 myQQ@qq.com
L 1234567890 myQQ@qq
L 1234567890 myQQ@qq.com
Sample Output:
ERROR: Account Not Exist
Register Successful
ERROR: Account Number Already Exists
ERROR: Wrong Password
Log in Successful
#include<iostream>
#include<vector>
#include<map>
#include<string>
#include<algorithm>
using namespace std;
map<string, string> mp;//定义map
int main() {
int n;
cin >> n;
char c;
string num, pw;
map<string, string>::iterator iter;//迭代器
for (int i = 0; i < n; i++) {
cin >> c;
cin >> num >> pw;
iter = mp.find(num);
if (c == 'R') {
if (iter!=mp.end()) {//不等于end表示找到了
cout << "ERROR: Account Number Already Exists" << endl;
}
else {
mp[num] = pw;//使这个账号的密码等于pw,相当于插入了
cout << "Register Successful" << endl;
}
}
if (c=='L'){
if (iter == mp.end()) {//等于end表示没有
cout << "ERROR: Account Not Exist" << endl;
}
else if (iter != mp.end() && mp[num] == pw) {
cout << "Log in Successful" << endl;
}
else if (iter != mp.end() && mp[num] != pw) {
cout << "ERROR: Wrong Password" << endl;
}
}
}
return 0;
}