Submission #515691

#TimeUsernameProblemLanguageResultExecution timeMemory
515691Be_dosMoney (IZhO17_money)C++17
100 / 100
975 ms58032 KiB
#include <iostream>
#include <cmath>
#include <cctype>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
#include <deque>
#include <stack>
#include <unordered_set>
#include <sstream>
#include <cstring>
#include <iomanip>
#include <queue>
#include <unordered_map>
#include <random>
#include <cfloat>
#include <chrono>
#include <bitset>
#include <complex>
#include <immintrin.h>
#include <cassert>

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    
    int32_t n;
    std::cin >> n;

    int32_t* arr = new int32_t[n];
    for(int32_t i = 0; i < n; i++)
        std::cin >> arr[i];

    std::set<int32_t> already;
    already.insert(1'000'000'005);
    int32_t ans = 0;
    int32_t cur = 0;
    while(cur != n) {
        int32_t bound = *already.lower_bound(arr[cur] + 1);
        ans++;
        bool first = true;
        while(cur < n && arr[cur] <= bound && (first || arr[cur] >= arr[cur - 1])) {
            already.insert(arr[cur]);
            cur++;
            first = false;
        }
    }
    std::cout << ans;
    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...