/**
Baktiyar™
Soon.....
**/
#include <bits/stdc++.h>
using namespace std ;
#define ent '\n'
#define F first
#define S second
#define no "NO\n"
#define yes "YES\n"
#define pb push_back
#define pf push_front
#define sz(w) w.size()
#define int long long
#define all(w) w.begin() , w.end()
#define DH ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
const int mod = 1e9 + 6 , MOD = 1e9 + 7 , N = 1e6 + 11 , inf = 1e9 + 111 , INF = 1e18 , LG = 20 , M = 555 ;
/**
int gcd (int a, int b) {
while (b) {
a %= b;
swap (a, b);
}
return a;
}
**/
void accepted() {
int n , c = 0 , l = 1;
cin >> n;
vector<int> a(n + 1) ;
multiset<int> s ;
for (int i = 1; i <= n; i++) {
cin >> a[i] ;
}
for (int i = 2; i <= n; i++) {
if (a[i] < a[i - 1]) {
for (int j = l; j < i; j++) {
s.insert(a[j]);
}
c++ ;
l = i ;
continue ;
}
auto up = s.upper_bound(a[l]) ;
if (up != s.end() && a[i] > *up) {
for (int j = l; j < i; j++) {
s.insert(a[j]) ;
}
c++ ;
l = i ;
}
}
cout << c + 1 ;
}
signed main()
{
DH
//freopen( "input.in" , "r" , stdin ) ;
//freopen( "output.out" , "w" , stdout ) ;
int T = 1 ;
//cin >> T ;
while( T -- )
{
accepted() ;
cout << ent ;
}
}
/**
I❤️U
**/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |