제출 #1013645

#제출 시각아이디문제언어결과실행 시간메모리
1013645Uniq0rnBaloni (COCI15_baloni)C++14
100 / 100
678 ms45552 KiB

#include <bits/stdc++.h>
using namespace std;

#define ull unsigned long long
#define ll long long int
#define pi pair<int,int>
#define sz(x) (int)x.size()
#define all(x) begin(x),end(x)

struct cmp{
    bool operator()(const pair<int, int>& a, const pair<int, int>& b) const {
        return a.first < b.first || (a.first == b.first && a.second < b.second);
    }
};

int main() {
    cin.tie(0)->sync_with_stdio(0);
    int n;
    cin >> n;
    set<pair<int, int>, cmp> s;
    for (int i = 0; i < n; i++) {
        int x;
        cin >> x;
        s.insert({x, i});
    }

    int lst = -1, p = 1e6, cnt = 0;
    while (sz(s)) {
        auto it = s.lower_bound({lst, p});
        if(it != s.end() && it->first == lst && it->second >= p){
            p = it->second;
            s.erase(it);
            lst--;
        } 
        else{
            lst = s.rbegin()->first;
            p = s.rbegin()->second;
            cnt++;
        }
    }
    cout << cnt;
    return 0;
}

#Verdict Execution timeMemoryGrader output
Fetching results...