Untitled

 avatar
unknown
c_cpp
4 months ago
803 B
9
Indexable
#include <iostream>
#include <vector>
#include <set>
#include <bitset>
#include <cstring>
#include <cassert>
typedef long long ll;

using namespace std;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);

    int n;
    cin>>n;
    ll total = (1 << n);
    multiset<int> st;
    for(int i=0; i<total; i++){
        int h;
        cin>>h;
        st.insert(h);
    }
    st.erase(st.begin());
    vector<int> res;
    res.push_back(0);
    while(n--){
        int cur = *st.begin();
        cout<<cur<<' ';

        int mxRes = res.size();

        for(int i=0; i<mxRes; i++){
            auto itr = st.lower_bound(res[i] + cur);
            assert(*itr == res[i] + cur);
            res.push_back(res[i] + cur);
            st.erase(itr);
        }
    }
    assert(st.empty());
    return 0;
}
Editor is loading...
Leave a Comment