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

hamayanhamayan's blog

Distinct or Not [AtCoder Beginner Contest 154 C]

https://atcoder.jp/contests/abc154/tasks/abc154_c

解説

https://atcoder.jp/contests/abc154/submissions/10000046

ある数列が全て異なる数であることを判別するには色々方法がある。
データ構造を使うやり方であれば、setを使うのがいいだろう。
setに全部入れて、サイズを見た時にN個であれば全て異なる。

自分は、ソートを使った手法を使った。
同じ数があった場合は、ソートをした後に隣接しているはずである。
なので、ソートを行い、全ての隣接する数について同じであるかを確認する。
同じな物があればNO, 全てそうでないならYES

int N, A[201010];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(i, 0, N) cin >> A[i];
    sort(A, A + N);

    rep(i, 0, N - 1) if (A[i] == A[i + 1]) {
        cout << "NO" << endl;
        return;
    }

    cout << "YES" << endl;
}