Submission #139377

#TimeUsernameProblemLanguageResultExecution timeMemory
139377mechfrog88Zalmoxis (BOI18_zalmoxis)C++14
35 / 100
197 ms20448 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #pragma GCC optimize("unroll-loops,no-stack-protector") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") using namespace __gnu_pbds; using namespace std; template <typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; typedef long long ll; typedef long double ld; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); ll n,k; cin >> n >> k; vector <ll> arr(n); vector <ll> low; ll mini = 30; for (int z=0;z<n;z++){ cin >> arr[z]; } ll c = 0; vector <ll> ans; for (int z=0;z<n;z++){ c += 1 << arr[z]; for (int q=0;q<arr[z];q++){ if (c & (1 << q)){ ans.push_back(q); c += 1 << q; k--; } } ans.push_back(arr[z]); } for (int q=0;q<30;q++){ if (c & (1 << q)){ ans.push_back(q); c += 1 << q; k--; } } for (int z=0;z<ans.size();z++){ ll w = 0; bool ok = true; while (ans[z] > 0 && k > 0){ if (ok) {k++; ok = false;} if (k < 2) break; ans[z]--; k -= 2; w += 2; } if (k == 1 && ans[z] > 1){ cout << ans[z]-1 << " " << ans[z]-1 << " "; w--; k--; } if (w == 0){ cout << ans[z] << " "; } else { for (int x=0;x<w;x++){ cout << ans[z] << " "; } } } cout << endl; }

Compilation message (stderr)

zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:47:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int z=0;z<ans.size();z++){
                  ~^~~~~~~~~~~
zalmoxis.cpp:23:8: warning: unused variable 'mini' [-Wunused-variable]
     ll mini = 30;
        ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...