Submission #1086120

#TimeUsernameProblemLanguageResultExecution timeMemory
1086120duytuandao21Po (COCI21_po)C++17
20 / 70
16 ms3272 KiB
#include<bits/stdc++.h> using namespace std; const int N = 2e5 + 7; const int inf = 1e9 + 7; const long long infll = 1e18 + 7; int n; int a[N], posMin[N], prePos[N]; pair<int, int> b[N]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; b[i] = make_pair(a[i], i); } sort (b + 1, b + 1 + n); int cnt = 0; b[0].first = -1; for (int i = 1; i <= n; i++) { if (b[i].first != b[i - 1].first) cnt++; a[b[i].second] = cnt; } stack <int> st; for (int i = 1; i <= n; i++) { while (st.size() > 0 && a[i] <= a[st.top()]) st.pop(); if (st.size() > 0) posMin[i] = st.top(); st.push(i); } int res = 0; for (int i = 1; i <= n; i++) { if (prePos[a[i]] == 0) res++; else { if (posMin[i] > prePos[a[i]]) res++; } prePos[a[i]] = i; } cout << res; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...