Submission #139567

#TimeUsernameProblemLanguageResultExecution timeMemory
139567mechfrog88Zalmoxis (BOI18_zalmoxis)C++14
100 / 100
273 ms59428 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;
    list <pair<ll,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(make_pair(q,true));
                c += 1 << q;
                k--;
            }
        }
        ans.push_back(make_pair(arr[z],false));
    }
    for (int q=0;q<30;q++){
        if (c & (1 << q)){
            ans.push_back(make_pair(q,true));
            c += 1 << q;
            k--;
        }
    }
    ll f = 0;
    for (auto it = ans.begin();it != ans.end();it++){
        if (!it->second) continue;
        bool ok = true;
        while (k > 0 && it->first > 0){
            auto p = it;
            ok = false;
            ans.insert(it,make_pair(((it->first)-1),true));
            ans.insert(it,make_pair(((it->first)-1),true));
            p--;
            p--;
            ans.erase(it);
            k--;
            it = p;
        }
    }
    for (auto ita = ans.begin();ita != ans.end();ita++){
        cout << ita->first << " ";
    }
    cout << endl;
}

Compilation message (stderr)

zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:50:14: warning: variable 'ok' set but not used [-Wunused-but-set-variable]
         bool ok = true;
              ^~
zalmoxis.cpp:23:8: warning: unused variable 'mini' [-Wunused-variable]
     ll mini = 30;
        ^~~~
zalmoxis.cpp:47:8: warning: unused variable 'f' [-Wunused-variable]
     ll f = 0;
        ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...