Submission #647986

#TimeUsernameProblemLanguageResultExecution timeMemory
647986toma_ariciuZalmoxis (BOI18_zalmoxis)C++17
100 / 100
284 ms14328 KiB
/// 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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...