ZeroJudge K373: 0 and 1 加強版??@@@!!!

小明想要做一個程式去輸出自己做錯的題目

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

發佈留言