QQ賬戶的申請與登入
阿新 • • 發佈:2018-12-04
實現QQ新帳戶申請和老帳戶登陸的簡化版功能最大挑戰是:據說現在的QQ號碼已經有10位數了。
輸入格式
輸入首先給出一個正整數N(≤105105),隨後給出Ñ行指令每行指令的格式為:“命令符(空格)QQ號碼(空格)密碼”其中命令符為“N”(代表新)時表示要新申請一個QQ號,後面是新帳戶的號碼和密碼;命令符為“L”(代表登入)時表示是老帳戶登陸,後面是登陸資訊。QQ號碼為一個不超過10位密碼為不小於6位,不,但大於1000(據說QQ老總的號碼是1001)的整數。超過16位,且不包含空格的字串。
輸出格式
針對每條指令,給出相應的資訊:
1)若新申請帳戶成功,則輸出“新:好”;
2)若新申請的號碼已經存在,則輸出“錯誤:存在”;
3)若老帳戶登陸成功,則輸出“登入:OK”;
4)若老帳戶QQ號碼不存在,則輸出“錯誤:不存在”;
5)若老帳戶密碼錯誤,則輸出“錯誤:錯誤的PW”。
輸入樣例
5
L 1234567890 [email protected]
N 1234567890 [email protected]
N 1234567890 [email protected]
L 1234567890 [email protected]
L 1234567890 [email protected]
輸出樣例
ERROR: Not Exist New: OK ERROR: Exist ERROR: Wrong PW Login: OK
#include <bits/stdc++.h> using namespace std; struct instruction { char ch; string qq,code; //QQ號碼和密碼 }; int main() { int n; cin >> n; instruction s[n]; map<string,string> QQ; //用來存放賬號和密碼 for(int i=0;i<n;i++) { cin >> s[i].ch >> s[i].qq >> s[i].code; switch(s[i].ch) { case 'N': //'N'表示要新申請一個QQ號 if(QQ.find(s[i].qq)==QQ.end()) //若賬號不存在 { QQ[s[i].qq] = s[i].code; //QQ存放使用者的賬戶密碼 cout << "New: OK" << endl; //若新申請帳戶成功,則輸出"New: OK" } else //若賬號已存在 { cout << "ERROR: Exist" << endl; //若新申請的號碼已經存在,則輸出"ERROR: Exist" } break; case 'L': //'L'表示是老使用者登陸 if(QQ.find(s[i].qq)==QQ.end()) { cout << "ERROR: Not Exist" << endl; //若老帳戶QQ號碼不存在,則輸出"ERROR: Not Exist" } else { if(QQ[s[i].qq]==s[i].code) //判斷老賬戶輸入的密碼是否正確 { cout << "Login: OK" << endl; //若老帳戶登陸成功,則輸出"Login: OK" } else { cout << "ERROR: Wrong PW" << endl; //若老帳戶密碼錯誤,則輸出"ERROR: Wrong PW" } } break; default: break; } } return 0; }