Submission #856089

# Submission time Handle Problem Language Result Execution time Memory
856089 2023-10-02T16:32:02 Z vjudge1 Turnir (COCI17_turnir) C++17
100 / 100
259 ms 18256 KB
//author: Ahmet Alp Orakci
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;

int cnt = 0;

#define ONLINE_JUDGE
void solve() {
    int n;
    cin >> n;

    vector <pair <int, int>> vec((1 << n));
    for(auto &[i, a] : vec)
        cin >> i, a = cnt++;

    sort(vec.begin(), vec.end());

    vector <int> ans((1 << n));
    for(int i = 0; i < (1 << n); i++) {
        auto it = upper_bound(vec.begin(), vec.end(), pair <int, int> {vec[i].first, 1E9});
        int cnt = it - vec.begin();

        //cerr << i << " " << cnt << "\n";
        ans[vec[i].second] = n - __lg(cnt);
    }

    for(int &i : ans)
        cout << i << " ";
    
    return;
}

signed main() {
    #ifndef ONLINE_JUDGE
        freopen(".in", "r", stdin);
        freopen(".out", "w", stdout);
    #endif

    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);

    int t = 1; //cin >> t;
    for(int i = 1; i <= t; i++) {
        solve();
    }

    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 2 ms 348 KB Output is correct
5 Correct 8 ms 732 KB Output is correct
6 Correct 15 ms 1372 KB Output is correct
7 Correct 31 ms 2008 KB Output is correct
8 Correct 57 ms 3920 KB Output is correct
9 Correct 128 ms 7628 KB Output is correct
10 Correct 259 ms 18256 KB Output is correct