問題
https://codeforces.com/contest/1399/problem/A (新しいタブで開く)
問題文
となる を選び、 なら小さいほうを削除する操作を繰り返す。
最終的に要素数を にできるか?
制約
サンプル
5
3
1 2 2
4
5 5 5 5
3
1 2 4
4
1 3 4 4
1
100
YES
YES
NO
NO
YES
考察
が小さめなので、ソートしてから普通にシミュレーションしていい。
ソートすると、消せるなら前から消していくのが明らかに最適。
コード
https://codeforces.com/contest/1399/submission/126143386 (新しいタブで開く)
void solve() {
int n;
cin >> n;
vector<int> a(n);
rep(i, n) cin >> a[i];
sort(a.begin(), a.end());
int i = 0;
while (i + 1 < a.size()) {
if (a[i + 1] - a[i] <= 1) {
a.erase(a.begin() + i);
}
else {
i++;
}
}
if (a.size() == 1) {
cout << "YES" << endl;
}
else {
cout << "NO" << endl;
}
}