제출 #1357918

#제출 시각아이디문제언어결과실행 시간메모리
1357918nathlol2Money (IZhO17_money)C++20
0 / 100
0 ms344 KiB
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
int n, ans, a[N];
set<pair<int, int>> s;

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    cin >> n;
    for(int i = 1;i<=n;i++) cin >> a[i];
    s.insert({0, 1e9});
    for(int i = 1;i<=n;i++){
        vector<int> cur = {a[i]};
        auto it = s.upper_bound({a[i], INT_MAX});
        --it;
        int l = it->first, r = it->second;
        while(i + 1 <= n && a[i + 1] >= a[i] && a[i + 1] <= r){
            cur.push_back(a[i + 1]);
            ++i;
        }
        for(int j = 0;j<cur.size() - 1;j++) if(cur[j] != cur[j + 1]) s.insert({cur[j], cur[j + 1]});
        s.erase({l, r});
        if(l != cur[0]) s.insert({l, cur[0]});
        if(cur.back() != r) s.insert({cur.back(), r});
        ++ans;
    }
    cout << ans;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…