제출 #1225767

#제출 시각아이디문제언어결과실행 시간메모리
1225767SpyrosAliv즐거운 행로 (APIO20_fun)C++20
0 / 100
0 ms328 KiB
#include "fun.h"
#include <bits/stdc++.h>
using namespace std;

int n, q;
vector<vector<int>> tree;
vector<int> dep;

void dfs1(int node, int d = 0) {
    dep[node] = d++;
    for (auto next: tree[node]) {
        dfs1(next);
    }
}

vector<int> createFunTour(int N, int Q) {
    n = N;
    q = Q;
    // binary
    tree.resize(n);
    for (int i = 1; i < n; i++) {
        tree[(i-1)/2].push_back(i);
    }
    dep.assign(n, 0);
    dfs1(0, 0);
    vector<int> perm;
    for (int d = 0; d < 20; d++) {
        vector<int> curr;
        for (int j = 0; j < n; j++) {
            if (dep[j] == d) curr.push_back(j);
        }
        int sz = curr.size();
        for (int i = 0; i < sz; i += 2) {
            perm.push_back(curr[i]);
        }
        for (int i = 1; i < sz; i += 2) {
            perm.push_back(curr[i]);
        }
    }
    return perm;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...