제출 #1269833

#제출 시각아이디문제언어결과실행 시간메모리
1269833glupanZalmoxis (BOI18_zalmoxis)C++20
95 / 100
84 ms10312 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, K; cin >> N >> K; int L = N + K; vector<int> S(N); for (int i = 0; i < N; ++i) cin >> S[i]; deque<int> dq; dq.push_front(30); vector<int> result; result.reserve(L); int pos = 0; while ((int)result.size() < L) { int sum = (int)result.size() + (int)dq.size(); if (pos < N) { int target = S[pos]; if (dq.front() > target) { if (sum < L) { int v = dq.front(); dq.pop_front(); dq.push_front(v - 1); dq.push_front(v - 1); } else { result.push_back(dq.front()); dq.pop_front(); } } else if (dq.front() == target) { result.push_back(dq.front()); dq.pop_front(); ++pos; } else { result.push_back(dq.front()); dq.pop_front(); } } else { if (dq.front() == 0) { result.push_back(dq.front()); dq.pop_front(); } else { if (sum < L) { int v = dq.front(); dq.pop_front(); dq.push_front(v - 1); dq.push_front(v - 1); } else { result.push_back(dq.front()); dq.pop_front(); } } } } for (int i = 0; i < L; ++i) { if (i) cout << ' '; cout << result[i]; } cout << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...