답안 #1086160

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1086160 2024-09-09T16:19:45 Z duytuandao21 Po (COCI21_po) C++17
20 / 70
15 ms 2416 KB
#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++) {
        if (a[i] == 0) continue;
        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 (a[i] == 0) continue;
        if (prePos[a[i]] == 0) res++;
        else {
            if (posMin[i] > prePos[a[i]]) res++;
        }
        prePos[a[i]] = i;
    }
    cout << res;
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Incorrect 0 ms 344 KB Output isn't correct
3 Incorrect 0 ms 348 KB Output isn't correct
4 Incorrect 7 ms 1060 KB Output isn't correct
5 Incorrect 10 ms 1628 KB Output isn't correct
6 Correct 15 ms 2416 KB Output is correct
7 Incorrect 12 ms 2140 KB Output isn't correct