제출 #344787

#제출 시각아이디문제언어결과실행 시간메모리
344787SeDunionMoney (IZhO17_money)C++17
0 / 100
1 ms364 KiB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e6 + 66;

int a[N], ans;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	int n;
	cin >> n;
	set<int>S = {N};
	for (int i = 1 ; i <= n ; ++ i) cin >> a[i];
	//{
		//map<int,int> mp; for (int i = 1 ; i <= n ; ++ i) {
			//assert(mp[a[i]]++ == 0);
		//}
	//}
	for (int i = 1 ; i <= n ; ++ i) {
		int j = i + 1;
		auto it = S.upper_bound(a[i]);
		while (j <= n && a[j] >= a[j - 1] && (a[j] == a[i] || S.lower_bound(a[j]) == it)) ++j;
		j--;
		S.insert(a[i]);
		S.insert(a[j]);
		ans++;
		//cout << i << " " << j << "\n";
		i = j;
	}
	cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...