Submission #344392

#TimeUsernameProblemLanguageResultExecution timeMemory
344392apostoldaniel854Money (IZhO17_money)C++14
100 / 100
1353 ms52844 KiB
#include <bits/stdc++.h>

using namespace std;

using ll = long long;
#define pb push_back
#define dbg(x) cerr << #x << " " << x << "\n"


const int MAX_N = 1e6;

int bank[1 + MAX_N];

int main () {
    ios::sync_with_stdio (false);
    cin.tie (0); cout.tie (0);

    int n;
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> bank[i];
    multiset <int> segments;
    int i = 2, seg = 1;
    int biggest = MAX_N * 2;
    segments.insert (bank[1]);
    while (i <= n) {
        while (i <= n && bank[i - 1] <= bank[i] && bank[i] <= biggest) {
            segments.insert (bank[i]);
            i++;
        }
        if (i <= n) {
            seg++;
            segments.insert (bank[i]);
            if (segments.upper_bound (bank[i]) != segments.end ())
                biggest = *segments.upper_bound (bank[i]);
            else
                biggest = MAX_N * 2;
        }
        i++;
    }
    cout << seg << "\n";
    return 0;
}
/**
6
3 6 4 5 1 2
**/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...