はまやんはまやんはまやん

hamayanhamayan's blog

Xor of Sequences [第二回日本最強プログラマー学生選手権 B]

https://atcoder.jp/contests/jsc2021/tasks/jsc2021_b

解説

https://atcoder.jp/contests/jsc2021/submissions/21830500

判定方法は色々あるが、自分の実装では1つのmapに入れて個数を数えることにした。
1つのmapに入れて集計をすると、

0個 -> どちらにも存在しない
1個 -> どちらかにある
2個 -> どちらにもある

という感じになるので、1個であるものを答えると答え。

int N, M, A[1010], B[1010];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N >> M;
    rep(i, 0, N) cin >> A[i];
    rep(i, 0, M) cin >> B[i];

    map<int, int> cnt;
    rep(i, 0, N) cnt[A[i]]++;
    rep(i, 0, M) cnt[B[i]]++;

    bool top = true;
    fore(p, cnt) if (p.second == 1) {
        if (!top) printf(" ");
        printf("%d", p.first);
        top = false;
    }
    printf("\n");
}