답안 #1013645

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1013645 2024-07-03T18:15:44 Z Uniq0rn Baloni (COCI15_baloni) C++14
100 / 100
678 ms 45552 KB
#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;
}

# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 604 KB Output is correct
4 Correct 2 ms 680 KB Output is correct
5 Correct 632 ms 41156 KB Output is correct
6 Correct 678 ms 45552 KB Output is correct
7 Correct 581 ms 37456 KB Output is correct
8 Correct 566 ms 37240 KB Output is correct
9 Correct 627 ms 39288 KB Output is correct
10 Correct 547 ms 40696 KB Output is correct