Submission #63026

#TimeUsernameProblemLanguageResultExecution timeMemory
63026hamzqq9Zalmoxis (BOI18_zalmoxis)C++14
100 / 100
334 ms14812 KiB
#include<bits/stdc++.h> #define st first #define nd second #define pb push_back #define ppb pop_back #define umax(x,y) x=max(x,y) #define umin(x,y) x=min(x,y) #define ll long long #define ii pair<int,int> #define iii pair<ii,int> #define sz(x) (x.size()) #define orta ((bas+son)>>1) #define all(x) x.begin(),x.end() #define dbgs(x) cerr<<(#x)<<" --> "<<(x)<<" " #define dbg(x) cerr<<(#x)<<" --> "<<(x)<<endl;getchar() #define pw(x) (1<<(x)) #define inf 2000500000 #define MOD 1000000007 #define N 305 #define LOG 20 using namespace std; int n,k,x; stack<int> s; vector<int> ans,cev,seq; int rem; void solve(int x) { if(x==0 || rem==0) { cev.pb(x); return ; } rem--; solve(x-1); solve(x-1); } int main() { // freopen("input.txt","r",stdin); scanf("%d %d",&n,&k); for(int i=1;i<=n+1;i++) { if(i==n+1 && sz(ans)==n+k) break ; if(i!=n+1) {scanf("%d",&x);seq.pb(x);} else x=inf; while((i!=n+1)?(sz(s) && s.top()<x):(sz(s)>1)) { int val=s.top(); ans.pb(val); while(sz(s) && s.top()==val) { s.pop(); val++; } s.push(val); } if(i!=n+1) { int tut=x; while(sz(s) && s.top()==tut) { s.pop(); tut++; } s.push(tut); ans.pb(x); } } int val=s.top(); while(val<30) { ans.pb(val); val++; } rem=n+k-sz(ans); int cur=0; for(int i=0;i<sz(ans);i++) { if(cur<sz(seq) && seq[cur]==ans[i]) { cev.pb(ans[i]); cur++; } else { solve(ans[i]); } } for(auto x:cev) printf("%d ",x); }

Compilation message (stderr)

zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:53:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(i==n+1 && sz(ans)==n+k) break ;
                       ^
zalmoxis.cpp:109:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<sz(ans);i++) {
               ^
zalmoxis.cpp:111:9: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(cur<sz(seq) && seq[cur]==ans[i]) {
         ^
zalmoxis.cpp:49:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d",&n,&k);
  ~~~~~^~~~~~~~~~~~~~~
zalmoxis.cpp:55:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   if(i!=n+1) {scanf("%d",&x);seq.pb(x);}
               ~~~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...