제출 #201187

#제출 시각아이디문제언어결과실행 시간메모리
201187ShelbyZalmoxis (BOI18_zalmoxis)C++11
0 / 100
1090 ms10504 KiB
#include <bits/stdc++.h> #define MAXN 1000005 using namespace std; int a[MAXN]; vector<int> sol; vector<int> ans; deque<int> d; deque<int> r; deque<int> pom; int main() { int n,k,i; scanf("%d%d",&n,&k); for(i=1;i<=n;i++) { scanf("%d",&a[i]); r.push_back(a[i]); } d.push_back(30); while(!r.empty()) { while(d.back()>r.back()) { int x=d.back(); d.pop_back(); if(x>1) { d.push_back(x-1); d.push_back(x-1); } } while(!r.empty() && d.back()<=r.back()) { if(!r.empty() && d.back()==r.back()) { sol.push_back(d.back()); d.pop_back(); r.pop_back(); } if(!r.empty() && d.back()<r.back()) { sol.push_back(d.back()); d.pop_back(); } } } while(!d.empty()) { sol.push_back(d.back()); d.pop_back(); } //reverse(sol.begin(),sol.end()); for(i=0;i<sol.size();i++) pom.push_back(sol[i]); int cnt=n+k-sol.size(); int poz=n; if(cnt==0) ans.insert(ans.end(),sol.begin(),sol.end()); while(cnt>0) { while(pom.back()==a[poz] && poz>0) { ans.push_back(a[poz]); poz--; pom.pop_back(); } while(cnt>0 && pom.back()!=a[poz]) { int x=pom.back(); pom.pop_back(); deque<int> tmpl; tmpl.push_back(x); while(!tmpl.empty() && cnt>0) { if(!tmpl.empty() && tmpl.back()==1) { ans.push_back(1); tmpl.pop_back(); } else { while(!tmpl.empty() && tmpl.back()!=1 && cnt>0) { int y=tmpl.back(); tmpl.pop_back(); //cout << tmpl.size() << endl; tmpl.push_back(y-1); tmpl.push_back(y-1); cnt--; } while(cnt==0 && !tmpl.empty()) { ans.push_back( tmpl.back() ); tmpl.pop_back(); } } } } } reverse(ans.begin(),ans.end()); for(i=0;i<ans.size();i++) printf("%d ",ans[i]); return 0; }

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

zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:64:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 for(i=0;i<sol.size();i++) pom.push_back(sol[i]);
         ~^~~~~~~~~~~
zalmoxis.cpp:125:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 for(i=0;i<ans.size();i++) printf("%d ",ans[i]);
         ~^~~~~~~~~~~
zalmoxis.cpp:13:6: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
 scanf("%d%d",&n,&k);
 ~~~~~^~~~~~~~~~~~~~
zalmoxis.cpp:16:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&a[i]);
     ~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...