Submission #487604

#TimeUsernameProblemLanguageResultExecution timeMemory
487604KazamaHoangHindeks (COCI17_hindeks)C++14
50 / 50
59 ms9388 KiB
#include <bits/stdc++.h>

using namespace std;

struct FenwickTree {
    vector<int> ft;

    FenwickTree() {
        ft.resize((int)1e6+5, 0);
    }

    int get(int x) {
        int res = 0;
        for (; x <= 1e6; x += x & -x)
            res += ft[x];
        return res;
    }

    void update(int x) {
        for (; x; x -= x & -x)
            ft[x] ++;
    }
};

int n, a[500005];
FenwickTree ft;

int main() {
    cin.tie(0)->sync_with_stdio(0);
    cin >> n;
    for (int i = 1; i <= n; ++ i) {
        cin >> a[i];
        ft.update(a[i]);
    }
    for (int i = n; i >= 1; -- i) {
        if (ft.get(i) >= i) {
            cout << i;
            return 0;
        }
    }
    cout << 0;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...