专栏文章

C. 【六月份 -- 基础语法组】-- T3 -- 阿衰

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mipadtkn
此快照首次捕获于
2025/12/03 08:46
3 个月前
此快照最后确认于
2025/12/03 08:46
3 个月前
查看原文
https://cspjs.online/contest/699/problem/3
CPP
#include <bits/stdc++.h>
using namespace std;
int n, a[1000010], t = 0, k;
vector<int> vv;
int main() {
    freopen("unlucky.in", "r", stdin);
    freopen("unlucky.out", "w", stdout);
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    sort(a + 1, a + n + 1);
    for (int i = 1; i <= n; i++) {
        if (a[i] != a[i - 1])
            vv.push_back(a[i]);
    }
    k = n - vv.size();
    for (int i = 0; i < vv.size(); i++) {
        if (vv[i] == t + 1)
            k++, t++;
        else if (vv[i] > t + 1) {
            if (k >= 2)
                k--, t++;
            else if (k == 1)
                vv.pop_back(), t++;
            else if (k == 0 && i <= vv.size() - 2) {
                vv.pop_back();
                vv.pop_back();
                k++;
            }
            i--;
        }
    }
    while (k >= 2) {
        t++;
        k -= 1;
    }
    cout << t;
    return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...