제출 #977960

#제출 시각아이디문제언어결과실행 시간메모리
977960Angus_YeungStone Arranging 2 (JOI23_ho_t1)C++17
100 / 100
175 ms21680 KiB
#include <bits/stdc++.h> #define x first #define y second #define pii pair<ll, ll> typedef long long ll; const ll MOD = 1000000007LL; const ll INF = 1e15; using namespace std; ll n, a[200010], p[200010]; map<ll, ll> f; stack<ll> stk; ll find(ll x) { if (p[x] == x) return x; return p[x] = find(p[x]); } int main() { cin.tie(0); cout.tie(0); ios::sync_with_stdio(0); cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; p[i] = i; if (!f[a[i]]) stk.push(i), f[a[i]]++; else { while (!stk.empty() && a[stk.top()] != a[i]) f[a[stk.top()]]--, p[find(stk.top())] = i, stk.pop(); stk.push(i), f[a[i]]++; } } for (int i = 1; i <= n; i++) cout << a[find(i)] << "\n"; return 0; } /* */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...