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

題目敘述

本題採EOF方式收資料,每筆資料有一個字串和一個為0或1的數字,0代表這個題目 (題目名稱為字串) 沒有做過,1則是有做過。要求輸出還沒有做過的題目,順序由輸入順序輸出。


範例輸入 #1

a001 1

a002 1

a003 0

範例輸出 #1

a003


範例輸入 #2

b002 0

b003 0

b009 1

範例輸出 #2

b002

b003


範例輸入 #3

b002 0

b003 0

b002 0

b004 1

b004 1

b003 0

範例輸出 #3

b002

b003


解題思路

本題需要使用Map或Set來確認題目有沒有出現過了,因為會有重複的題號出現。

解題程式碼如下 (僅供參考):

#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 M933: 邏輯電路

ZeroJudge A148: You Cannot Pass?!

ZeroJudge A263: 日期差幾天