Submission #644070

#TimeUsernameProblemLanguageResultExecution timeMemory
644070AlexandruabcdeMoney (IZhO17_money)C++14
0 / 100
1 ms332 KiB
#include <bits/stdc++.h>

using namespace std;

constexpr int NMAX = 1e6 + 5;

int N;
int A[NMAX];

set <int> S;

int main () {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    cin >> N;

    for (int i = 1; i <= N; ++ i )
        cin >> A[i];

    int ans = 0;

    for (int i = 1; i <= N; ++ i ) {
        ++ ans;
        int j = i;

        if (S.empty()) {
            for (; j <= N && A[j+1] >= A[j]; ++ j );

            for (int k = i; k <= j; ++ k )
                S.insert(A[k]);
            i = j;

            continue;
        }

        auto it = S.upper_bound(A[i]);

        if (it == S.end()) {
            for (; j <= N && A[j+1] >= A[j]; ++ j );

            for (int k = i; k <= j; ++ k )
                S.insert(A[k]);
            i = j;

            continue;
        }

        for (; j <= N && A[j+1] >= A[j] && A[j+1] < *it; ++ j );

        for (int k = i; k <= j; ++ k )
            S.insert(A[k]);
        i = j;
    }

    cout << ans << '\n';

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...