Submission #929203

#TimeUsernameProblemLanguageResultExecution timeMemory
929203KarootBaloni (COCI15_baloni)C++17
60 / 100
1750 ms131072 KiB
#include <iostream> #include <cmath> #include <unordered_map> #include <map> #include <set> #include <queue> #include <vector> #include <string> #include <iomanip> #include <algorithm> #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() using namespace std; typedef long long ll; ll linf = 1e15+1; inline void scoobydoobydoo(){ ios::sync_with_stdio(false); ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } set<int> bals[1000003]; int main(){ scoobydoobydoo(); int n; cin >> n; set<pair<int, int>> v; for (int i = 0; i < n; i++){ int h; cin >> h; v.insert({i, h}); bals[h].insert(i); } int sum = 0; while (!v.empty()){ sum++; int h = (*v.begin()).second; int i = (*v.begin()).first; v.erase(v.begin()); if (v.empty())break; if (bals[h-1].empty())break; auto it = bals[h-1].upper_bound(i); while (h >= 1 && it != bals[h-1].end()){ auto itr = v.find({*it, h-1}); v.erase(itr); bals[h-1].erase(it); i = *it; h--; if (bals[h-1].empty())break; it = bals[h-1].upper_bound(i); } } cout << sum << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...