Submission #1229891

#TimeUsernameProblemLanguageResultExecution timeMemory
1229891MuhammadSaramZalmoxis (BOI18_zalmoxis)C++20
5 / 100
142 ms2504 KiB
#include <bits/stdc++.h> using namespace std; const int M = 31; int cnt[M],us[M],lim[M]; int main() { for (int i=1;i<M;i++) lim[i]=(1<<M-i-1); int n,k,x; cin>>n>>k; for (int i=0;i<n;i++) cin>>x,cnt[x]++; vector<int> ad; for (int i=0;i<M-1;i++) { if ((cnt[i]+us[i])%2) ad.push_back(i),cnt[i]++,k--; us[i+1]=(cnt[i]+us[i])/2; } while (k && ad.size()) { int x=ad.back();ad.pop_back(); if (!x) continue; cnt[x]--,us[x]++,k--,ad.push_back(x-1),ad.push_back(x-1); cnt[x-1]+=2; } for (int i=0;i<M;i++) while (cnt[i]--) cout<<i<<' '; cout<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...