#include <bits/stdc++.h>
using namespace std;
const int M = 31;
int cnt[M],us[M],ad[M];
vector<int> v1[M];
int main()
{
int n,k;
cin>>n>>k;
if (k)
cout<<1/0<<endl;
int a[n];
for (int i=0;i<n;i++)
cin>>a[i],cnt[a[i]]++;
for (int i=0;i<M-1;i++)
{
if ((cnt[i]+us[i])%2)
ad[i]++,k--;
us[i+1]=(cnt[i]+us[i]+ad[i])/2;
}
int pr=-1;
for (int i=0;i<M;i++)
{
if (cnt[i]) pr=i;
if (ad[i]) v1[pr].push_back(i);
}
for (int i=0;i<n;i++)
{
if (v1[a[i]].size())
{
vector<int> v=v1[a[i]];
stack<int> st;
while (k && v.size())
{
int x=v.back();v.pop_back();
if (!x)
{
st.push(x);
continue;
}
k--,v.push_back(x-1),v.push_back(x-1);
}
sort(v.begin(),v.end());
reverse(v.begin(),v.end());
for (int x:v)
cout<<x<<' ';
while (!st.empty())
cout<<st.top()<<' ',st.pop();
v1[a[i]].clear();
}
cout<<a[i]<<' ';
}
cout<<endl;
return 0;
}
Compilation message (stderr)
zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:15:24: warning: division by zero [-Wdiv-by-zero]
15 | cout<<1/0<<endl;
| ~^~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |