# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
799065 | acatmeowmeow | Stone Arranging 2 (JOI23_ho_t1) | C++11 | 137 ms | 18336 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5;
int n, arr[N + 5], res[N + 5];
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >>n;
for (int i = 1; i <= n; i++) cin >> arr[i];
multiset<int> st;
vector<int> cnt;
for (int i = 1; i <= n; i++) {
if (st.find(arr[i]) == st.end()) cnt.push_back(i);
else {
while (cnt.size() && arr[cnt.back()] != arr[i]) st.erase(st.find(arr[cnt.back()])), cnt.pop_back();
cnt.push_back(i);
}
st.insert(arr[i]);
}
int index = 0;
while (index < cnt.size()) {
if (index + 1 < cnt.size() && cnt[index] + 1 != cnt[index + 1]) {
for (int i = cnt[index]; i <= cnt[index + 1]; i++) res[i] = arr[cnt[index]];
} else {
res[cnt[index]] = arr[cnt[index]];
}
index++;
}
for (int i = 1; i <= n; i++) cout << res[i] << '\n';
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |