各大網路平台為了推銷自己的服務,會給予每支帳號一些免費試用功能,當試用期過了,就必須要付費使用,有的人為了不想付錢,會創建許多新的帳號來使用免費的功能,這些人被網友親切的稱之為「免費仔」。
範例測資
範例輸入 | 範例輸出 |
---|---|
輸入的第一行有一個正整數 N (1 <= N <= 2000),接下來下有 N 行註冊操作,每行包含兩個以空白隔開的字串 A 和 B,A 是註冊這個帳號時所使用的 Gmail,B 是本次註冊用戶輸入的用戶名,輸入字串包含英文字母、數字與符號。 | 對於每一筆註冊操作,如果該信箱 A 尚未被使用,請輸出「welcome, 」加上用戶名 B;反之,請輸出用戶名 B 加上「 account has been used」,見範例輸出。 |
4 [email protected] HiHi @gmail.com alex0301 @gmail.com HiHi NotGmail M_SQRT | welcome, HiHi welcome, alex0301 HiHi account has been used welcome, M_SQRT |
解題思路
使用 Map 來判斷每一個信箱有沒有出現過,如果 Map[信箱] 是 0 的話,代表這個信箱沒有被註冊過,如果 Map[信箱] 不是 0,就代表這個信箱已經被註冊過了。每次判斷完之後都要記得將 Map[信箱]++。
範例程式碼-ZeroJudge N369: 免費仔
#include <iostream>
#include <map>
using namespace std;
int main() {
cin.sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
map<string, int>MAP;
for (int i = 0; i<N; i++)
{
string a, b;
cin >> a >> b;
if (MAP[a] == 0) cout << "welcome, " << b << "\n";
else cout << b << " account has been used\n";
MAP[a]++;
}
}
//ZeroJudge N369
//Dr. SeanXD