226772026-01-15 15:23:59AblablablaUtazási irodacpp17Accepted 45/45123ms12592 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

vector<vector<ll>> csucsok;
vector<ll> alatta;
vector<ll> ans;

ll szamol(ll akt, ll elozo){
    ll vissza = 1;

    for(ll x : csucsok[akt]){
        if(x != elozo){
            vissza += szamol(x, akt);
        }
    }

    return alatta[akt] = vissza;
}

void dfs(ll akt, ll elozo, ll ind){
    ans.push_back(akt);
    if(ind == 1){
        return;
    }

    ind--;

    for(ll x : csucsok[akt]){
        if(x == elozo) continue;

        if(ind > alatta[x]){
            ind -= alatta[x];
        } else{
            dfs(x, akt, ind);
            break;
        }
    }
}

int main()
{
    ll n, k;
    cin >> n >> k;

    ll kezd = k / n;
    k -= kezd*n;

    csucsok.assign(n, vector<ll>());
    for(ll i = 0; i < n - 1; i++){
        ll a, b;
        cin >> a >> b;
        a--; b--;

        csucsok[a].push_back(b);
        csucsok[b].push_back(a);
    }

    for(ll i = 0; i < n; i++){
        sort(csucsok[i].begin(), csucsok[i].end());
    }

    alatta.assign(n, 0);
    szamol(kezd, -1);
    dfs(kezd, -1, k);

    for(ll x : ans){
        cout << x + 1 << " ";
    }
    cout << "\n";
}
SubtaskSumTestVerdictTimeMemory
base45/45
1Accepted0/01ms316 KiB
2Accepted0/012ms1332 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted1/11ms316 KiB
6Accepted2/22ms508 KiB
7Accepted2/22ms564 KiB
8Accepted1/13ms564 KiB
9Accepted2/2101ms11508 KiB
10Accepted2/2115ms11776 KiB
11Accepted1/1123ms12592 KiB
12Accepted2/2101ms8340 KiB
13Accepted2/293ms8736 KiB
14Accepted2/2104ms8500 KiB
15Accepted2/2101ms8184 KiB
16Accepted2/298ms8696 KiB
17Accepted3/3105ms8680 KiB
18Accepted2/2101ms8244 KiB
19Accepted2/2100ms8248 KiB
20Accepted2/2104ms8500 KiB
21Accepted3/3104ms8304 KiB
22Accepted3/3101ms8196 KiB
23Accepted3/3101ms8508 KiB
24Accepted1/1104ms8608 KiB
25Accepted1/196ms8780 KiB