제출 #668180

#제출 시각아이디문제언어결과실행 시간메모리
6681801zaid1Zalmoxis (BOI18_zalmoxis)C++17
5 / 100
469 ms91004 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define endl '\n' const int M = 3e5+10; signed main() { cin.tie(0)->sync_with_stdio(0); int n, k; cin >> n >> k; vector<int> v(n), v1; for (int &i:v) cin >> i; map<int, int> vis; reverse(v.begin(), v.end()); vector<int> st; st.push_back(v.back()); v1 = {v.back()}; v.pop_back(); while (st.back() != 30) { if (v.empty()) { for (int i = st.back(); i < 30; i++) { k--; vis[v1.size()] = true; v1.push_back(i); } break; } else { int h = v.back(); int w = st.back(); if (h == w) { k--; vis[v1.size()] = true; v1.push_back(h); v.pop_back(); while (st.size() && h == w) { h = w+1; st.pop_back(); if (st.size()) w = st.back(); } st.push_back(h); } else if (h < w) { k--; v.pop_back(); st.push_back(h); vis[v1.size()] = true; v1.push_back(h); } else { v.push_back(w); } } } vector<int> ans; for (int i = 0; i < v1.size(); i++) { if (vis[i]&&k) { int l = v1[i]-1; for (int j = 1; l >= 0 && k > 1; j++, k--) { ans.push_back(l--); } k--; ans.push_back(l+1); } else ans.push_back(v1[i]); } for (int i:ans) cout << i << ' '; cout << endl; return 0; } /* 5 1 29 27 25 25 28 */

컴파일 시 표준 에러 (stderr) 메시지

zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:59:23: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |     for (int i = 0; i < v1.size(); i++) {
      |                     ~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...