[yukicoder] No. 0938 賢人を探せ

問題

方針

カンニングされた人がカンニングを行っていないかどうかを調べます。これはセットを使って実現することができます。

コード

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
    int N;
    cin >> N;
    string A[N], B[N];
    set<string> g;
    for (int i = 0; i < N; i++) {
        cin >> A[i] >> B[i];
        g.insert(A[i]);
    }
    set<string> f;
    vector<string> p;
    for (string s : B) {
        if (g.count(s) == 0 && f.count(s) == 0) {
            p.push_back(s);
            f.insert(s);
        }
    }
    for (string s : p) {
        cout << s << "\n";
    }
    return 0;
}