#include <bits/stdc++.h>
#define all(v) v.begin(), v.end()
using namespace std;
const int sz = 1e6 + 2, inf = 1e9;
int n, a[sz], f[sz];
void upd(int i, int x)
{
for(; i < sz; i += i & -i) f[i] += x;
}
int get(int i, int r = 0)
{
for(; i > 0; i -= i & -i) r += f[i];
return r;
}
void solve()
{
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> a[i];
}
n = unique(a + 1, a + 1 + n) - a - 1;
int cnt = 0;
for(int i = 1; i <= n; )
{
upd(a[i], 1);
for(i = i + 1; i <= n && a[i] > a[i - 1] && get(a[i]) - get(a[i - 1]) == 0; i++)
{
upd(a[i], 1);
}
if(a[i] > a[i - 1] && get(a[i]) - get(a[i] - 1)) i++;
cnt++;
}
cout << cnt;
}
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t = 1;
// cin >> t;
while(t--) solve();
}
# | 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... |