제출 #429359

#제출 시각아이디문제언어결과실행 시간메모리
429359jovan_bMoney (IZhO17_money)C++17
0 / 100
1 ms332 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;
using ld = long double;

const int MAXN = 1000000;

int bit[MAXN+5];

multiset <int> q;

int a[MAXN+5];

bool ima(int l, int r){
    auto x = q.lower_bound(l);
    return x != q.end() && *x <= r;
}

int main(){
    ios_base::sync_with_stdio(false), cin.tie(0);
    cout.precision(10);
    cout << fixed;

    int n;
    cin >> n;
    for(int i=1; i<=n; i++) cin >> a[i];
    for(int i=1; i<n; i++) q.insert(a[i]);
    int splits = 0;
    int psl = a[n];
    for(int i=n-1; i>=1; i--){
        if(a[i] > a[i+1]){
            psl = a[i];
            splits++;
        }
        else{
            if(ima(a[i]+1, psl-1)){
                splits++;
                psl = a[i] - 1;
            }
        }
        q.erase(q.find(a[i]));
    }
    cout << splits + 1 << "\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...