QQ帳戶的申請與登陸(25)
實現QQ新帳戶申請和老帳戶登陸的簡化版功能。最大挑戰是:據說現在的QQ號碼已經有10位數了。
輸入格式說明:
輸入首先給出一個正整數N(<=105),隨後給出N行指令。每行指令的格式爲:“命令符(空格)QQ號碼(空格)密碼”。其中命令符爲“N”(代表New)時表示要新申請一個QQ號,後面是新帳戶的號碼和密碼;命令符爲“L”(代表Login)時表示是老帳戶登陸,後面是登陸信息。QQ號碼爲一個不超過10位、但大於1000(據說QQ老總的號碼是1001)的整數。密碼爲不小於6位、不超過16位、且不包含空格的字符串。
輸出格式說明:
針對每條指令,給出相應的信息:
1) 若新申請帳戶成功,則輸出“New: OK”;
2) 若新申請的號碼已經存在,則輸出“ERROR: Exist”;
3) 若老帳戶登陸成功,則輸出“Login: OK”;
4) 若老帳戶QQ號碼不存在,則輸出“ERROR: Not Exist”;
5) 若老帳戶密碼錯誤,則輸出“ERROR: Wrong PW”。
樣例輸入與輸出:
序號 | 輸入 | 輸出 |
1 |
5 L 1234567890 [email protected] N 1234567890 [email protected] N 1234567890 [email protected] L 1234567890 myQQ@qq L 1234567890 [email protected] |
ERROR: Not Exist New: OK ERROR: Exist ERROR: Wrong PW Login: OK |
代碼:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <map>
#include <queue>
#include <algorithm>
using namespace std;
int main(){
map<long long,string> m;
map<long long,string>::iterator it;
int n;
long long na;
char a;
string mi,pi;
cin>>n;
while(n--){
cin>>a>>na>>mi;
it=m.find(na);
if(a=='L'){
if(it==m.end())
printf("ERROR: Not Exist\n");
else{
pi=m[na];
if(mi==pi)
printf("Login: OK\n");
else
printf("ERROR: Wrong PW\n");
}
}
else if(a=='N'){
if(it==m.end()){
m[na]=mi;
printf("New: OK\n");
}
else
printf("ERROR: Exist\n");
}
}
return 0;
}