226772026-01-15 15:23:59AblablablaUtazási irodacpp17Elfogadva 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";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base45/45
1Elfogadva0/01ms316 KiB
2Elfogadva0/012ms1332 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva1/11ms316 KiB
6Elfogadva2/22ms508 KiB
7Elfogadva2/22ms564 KiB
8Elfogadva1/13ms564 KiB
9Elfogadva2/2101ms11508 KiB
10Elfogadva2/2115ms11776 KiB
11Elfogadva1/1123ms12592 KiB
12Elfogadva2/2101ms8340 KiB
13Elfogadva2/293ms8736 KiB
14Elfogadva2/2104ms8500 KiB
15Elfogadva2/2101ms8184 KiB
16Elfogadva2/298ms8696 KiB
17Elfogadva3/3105ms8680 KiB
18Elfogadva2/2101ms8244 KiB
19Elfogadva2/2100ms8248 KiB
20Elfogadva2/2104ms8500 KiB
21Elfogadva3/3104ms8304 KiB
22Elfogadva3/3101ms8196 KiB
23Elfogadva3/3101ms8508 KiB
24Elfogadva1/1104ms8608 KiB
25Elfogadva1/196ms8780 KiB