Submission #442136

#TimeUsernameProblemLanguageResultExecution timeMemory
442136Nima_NaderiMoney (IZhO17_money)C++14
100 / 100
1226 ms58180 KiB
//In the name of GOD
#pragma GCC optimize("Ofast")
#include<bits/stdc++.h>
using namespace std;

typedef int ll;
const ll MXN = 1e6 + 10;
ll n, ans;
ll A[MXN];
set<ll> st;
int main(){
	ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);
	cin >> n;
	for(int i = 1; i <= n; i ++) cin >> A[i];
	for(int i = 1; i <= n; i ++){ ans ++;
        auto itr = st.upper_bound(A[i]);
        int ptr = i;
        if(itr == st.end()){
            while(ptr < n && A[ptr] <= A[ptr + 1]){
                ptr ++;
            }
        } else {
            int x = *itr;
            while(ptr < n && A[ptr + 1] <= x && A[ptr] <= A[ptr + 1]){
                ptr ++;
            }
        }
        for(; i <= ptr; i ++) st.insert(A[i]);
        i --;
    }
	cout << ans << '\n';
	return 0;
}
//! N.N
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...