小明想要做一個程式去輸出自己做錯的題目。
1 代表做對,0 代表做錯。
範例測資
範例輸入 | 範例輸出 |
---|---|
EOF 輸入 第一項是題目名稱 第二項是 0 / 1 (有沒有做完) | 輸出第二項是 0 的題目名稱 按輸入順序輸出 「重覆只需輸出一次」 |
a001 1 a002 1 a003 0 | a003 |
b002 0 b003 0 b009 1 | b002 b003 |
b002 0 b003 0 b002 0 b004 1 b004 1 b003 0 | b002 b003 |
解題思路
因為題目名稱會重複出現,但是重複只需輸出一次,所以可以使用 Map/Set 來判斷目前這個題目 (字串) 是否已經有出現過了。如果 Map 的 Value 值是 0 (預設會是0),代表還沒出現過可以輸出,然後要記得將 Map 的 Value 值 +1。
範例程式碼-ZeroJudge K373: 0 and 1 加強版??@@@!!!
#include <iostream>
#include <map>
using namespace std;
int main() {
string str;
int N;
map<string, int>MAP;
while (cin >> str >> N)
{
if (N == 0 && MAP[str] == 0) cout << str << "\n";
MAP[str]++;
}
}
//ZeroJudge K373
//Dr. SeanXD