제출 #895928

#제출 시각아이디문제언어결과실행 시간메모리
895928frostray8653Stone Arranging 2 (JOI23_ho_t1)C++17
100 / 100
147 ms143396 KiB
#include <bits/stdc++.h> using namespace std; #define int long long using pii = pair<int, int>; #define IO ios::sync_with_stdio(0), cin.tie(0) #define FOR(p, a, b) for (int p = a; p <= b; p++) void dbg() {;} template<class T, class ...U> void dbg(T a, U ...b) {cout << a << (sizeof...(b) ? ", " : " "); dbg(b...);} void ent() {cout << "\n";} /// ---- INITIAL END ---- const int N = 200005; int a[N]; vector<int> id; deque<int> pos[N]; int get_id(int x) { return lower_bound(id.begin(), id.end(), x) - id.begin(); } signed main() { IO; int n; cin >> n; FOR (i, 1, n) { cin >> a[i]; id.push_back(a[i]); } sort(id.begin(), id.end()); id.resize(unique(id.begin(), id.end()) - id.begin()); deque<pii> dq; FOR (i, 1, n) { int x = get_id(a[i]); if (! pos[x].empty()) { int lst = pos[x].back(); while (! dq.empty() && dq.back().first > lst) { pos[dq.back().second].pop_back(); dq.pop_back(); } } else { pos[x].push_back(i); dq.push_back({i, x}); } } int now = 1, now_col = -1; for (pii p : dq) { for (; now < p.first; now++) cout << now_col << "\n"; now_col = id[p.second]; } for (; now <= n; now++) cout << id[dq.back().second] << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...