Submission #668192

#TimeUsernameProblemLanguageResultExecution timeMemory
668192mdubaisiZalmoxis (BOI18_zalmoxis)C++14
0 / 100
57 ms12364 KiB
#include <bits/stdc++.h> #include <array> #include <unordered_set> #define ll long long #define all(v) (v.begin()), (v.end()) #define setall(a, val) for(auto& x : a) x = val clock_t start_time; double get_time() { return (double)(clock() - start_time) / CLOCKS_PER_SEC; } void init() { #ifndef ONLINE_JUDGE FILE* _ = freopen("in.txt", "r", stdin); start_time = clock(); #endif } const ll MOD = 1e9 + 7; const ll N = 1e6 + 7; const ll M = 5e1 + 7; using namespace std; //#################################################################################### int n, k; int a[N], pos; vector< pair<bool, bool> > v; // {go to childeren, new node} void create_tree(int x, int node) { if (!x || pos >= n) return; if (x == a[pos]) { v[node] = { 0, 0 }; pos++; return; } if (a[pos] < x) { create_tree(x - 1, node * 2); create_tree(x - 1, node * 2 + 1); v[node] = { 1, 0 }; } else v[node] = { 0, 1 }, k--; } void print(int x, int t) { if (!t) { cout << x << ' '; return; } print(x - 1, 0); print(x - 1, t - 1); } void solve(int x, int node) { if (!x) return; if (!v[node].first) { print(x, k * v[node].second); return; } solve(x - 1, node * 2); solve(x - 1, node * 2 + 1); } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);// init(); srand(time(0)); cin >> n >> k; for (int i = 0; i < n; i++) cin >> a[i]; v.resize(N); create_tree(30, 1); solve(30, 1); cout << endl; //cerr << get_time() << "s" << endl; }

Compilation message (stderr)

zalmoxis.cpp: In function 'void init()':
zalmoxis.cpp:11:8: warning: unused variable '_' [-Wunused-variable]
   11 |  FILE* _ = freopen("in.txt", "r", stdin);
      |        ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...