Submission #895325

#TimeUsernameProblemLanguageResultExecution timeMemory
895325raul2008487Money (IZhO17_money)C++17
100 / 100
845 ms62148 KiB
#include <bits/stdc++.h>
#define ll long long
#define pll pair<ll,ll>
#define pb push_back
#define eb emplace_back
#define vl vector<ll>
#define fi first
#define se second
#define in insert
#define mpr make_pair
#define lg(x) __lg(x)
#define bpc(x) __builtin_popcount(x)
#define all(v) v.begin(), v.end()
#define endl "\n"
using namespace std;
const int mod = 998244353;
//struct BIT{
//    ll sz;
//    vl ft;
//    void init(){
//        sz = 1e6+10;
//        ft.resize(sz+6);
//    }
//    void add(ll idx, ll val){
//        while(idx <= sz){
//            ft[idx] += val;
//            idx += (idx & (-idx));
//        }
//    }
//    ll get(ll idx){
//        ll ret = 0;
//        while(idx > 0){
//            ret += ft[idx];
//            idx -= (idx & (-idx));
//        }
//        return ret;
//    }
//    ll ask(ll l, ll r){
//        return get(r) - get(l-1);
//    }
//};
void solve()
{
    ll n, i, j, x, ans = 0;
    cin>>n;
    vl v(n);
    multiset<ll> ms;
    for(i=0;i<n;i++){
        cin>>v[i];
    }
    for(i=0;i<n;i++){
        j = i;
        while(j < (n-1) && v[j] <= v[j+1] && (ms.upper_bound(v[i]) == ms.end() || (*ms.upper_bound(v[i]) >= v[j+1])))j++;
        ans++;
        for(x = i; x<=j; x++){
            ms.in(v[x]);
        }
        i = j;
    }
    cout << ans << endl;
}
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    //precomp();
    ll tst=1;
    //cin>>tst;
    while(tst--){
            solve();
    }
}
/*
ok.
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...