Submission #1229901

#TimeUsernameProblemLanguageResultExecution timeMemory
1229901Muhammad_AneeqZalmoxis (BOI18_zalmoxis)C++20
0 / 100
1105 ms135792 KiB
#include <iostream> #include <set> #include <vector> #include <deque> using namespace std; int const N=1e6+10; int a[N],nx[N],org[N]; vector<int>res[N]={}; inline void solve() { int n,k; cin>>n>>k; set<pair<int,int>>s; a[n+1]=30; for (int i=1;i<=n;i++) { cin>>a[i]; org[i]=a[i]; nx[i]=i+1; s.insert({a[i],i}); } while ((*begin(s)).first!=30) { int ind=(*begin(s)).second; s.erase(*begin(s)); if (a[ind]==a[nx[ind]]) { s.erase(*begin(s)); nx[ind]=nx[nx[ind]]; } else { k--; res[nx[ind]-1].push_back(a[ind]); } a[ind]++; s.insert({a[ind],ind}); } for (int i=1;i<=n;i++) { cout<<org[i]<<' '; deque<int>cur; cur={begin(res[i]),end(res[i])}; while (cur.size()) { while (cur.back()>0&&k>0) { int z=cur.back(); cur.pop_back(); cur.push_back(z-1); cur.push_back(z-1); k--; } cout<<cur.back()<<' '; } } cout<<endl; } int main() { ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int t=1; for (int i=1;i<=t;i++) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...