This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/// Preset de orice altceva
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
#include <iomanip>
using namespace std;
//ifstream cin("test.in");
//ofstream cout("test.out");
int n, k, v[1000005], ind, diff;
vector <pair<int, bool>> sol;
vector <int> ans;
void dfs(int val)
{
if(val == -1)
return;
if(v[ind] == val)
{
ind++;
sol.push_back({val, 1});
return;
}
if(v[ind] < val)
{
dfs(val - 1);
dfs(val - 1);
}
else
sol.push_back({val, 0});
}
void afis(int val)
{
if(diff == 0 || val == 0)
{
cout << val << ' ';
return;
}
diff--;
afis(val - 1);
afis(val - 1);
}
int main()
{
cin >> n >> k;
for(int i = 1; i <= n; i++)
cin >> v[i];
v[n + 1] = 31;
ind = 1;
dfs(30);
diff = n + k - sol.size();
for(auto elem : sol)
{
if(elem.second == 1 || diff == 0)
cout << elem.first << ' ';
else
afis(elem.first);
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |