Submission #873346

#TimeUsernameProblemLanguageResultExecution timeMemory
873346tvladm2009Baloni (COCI15_baloni)C++14
100 / 100
711 ms92568 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

const int N = 1e6 + 7;

set<int> s[N];

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        int x;
        cin >> x;
        s[x].insert(i);
    }
    int ans = 0;
    for (int i = N - 1; i >= 0; --i) {
        for (auto pos : s[i]) {
            int h = i - 1;
            int last = pos;
            ans++;
            auto it = s[h].lower_bound(pos);
            while (it != s[h].end()) {
                last = *it;
                s[h].erase(it);
                h--;
                it = s[h].lower_bound(last);
            }
        }
    }
    cout << ans << "\n";
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...