# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
512330 | 2022-01-16T09:33:31 Z | Kaguya | Po (COCI21_po) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector<int> a(n); for (auto& t : a) cin >> t; int ans = 0; vector<bool> vis(n, false); set<int> se; for (int i = 0; i < n; i++) se.insert(a[i]); map<int, vector<int>> pos; for (int i = 0; i < n; i++) pos[a[i]].push_back(i); while (!se.empty()) { int x = *(se.begin()); se.erase(se.begin()); for (auto t : pos[x]) { if (vis[t]) continue; vis[t] = true; int i = t; ans += 1; while (i < n && a[i] >= x) { if (a[i] == x) vis[i] = true; i++; } if (a[i] == x) vis[i] = true; } cout << ans << '\n'; }