148912025-02-06 11:09:08Leventusz09K-léptű ősökcpp14Hibás válasz 0/1002.099s87604 KiB
#include <iostream>
#include <vector>

using namespace std;

struct Node {
	vector<int> et;
	int p = -1;
};
vector<Node> G;

void f(int i, int p) {
	for (int n : G[i].et) {
		if (n == p) {
			G[i].p = n;
		}else{
			f(n, i);
		}
	}
}

int pn(int i, int n) {
	if (G[i].p == -1) return -1;
	if (n) return pn(G[i].p, --n);	
	return G[i].p;
}

int main() {
	int N, K;
	cin >> N >> K;
	K--;
	G = vector<Node>(N);
	for (int i = 0, x, y; i < N-1; i++) {
		cin >> x >> y;
		G[x].et.push_back(y);
		G[y].et.push_back(x);
	}

	f(0, -1);



	for (int i = 0, c; i < N; i++) {
		c = i;
		for (int j = 0; j < K && c != -1; j++)
			c = G[c].p;
		
		cout <<  c << " ";
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Hibás válasz1ms316 KiB
subtask20/25
2Hibás válasz1ms316 KiB
3Hibás válasz1ms316 KiB
4Elfogadva1ms316 KiB
5Elfogadva1ms316 KiB
6Elfogadva2ms316 KiB
7Elfogadva2ms316 KiB
8Elfogadva3ms316 KiB
9Elfogadva4ms508 KiB
10Elfogadva6ms564 KiB
11Elfogadva4ms316 KiB
subtask30/16
12Elfogadva270ms3644 KiB
13Időlimit túllépés2.099s8320 KiB
14Időlimit túllépés2.099s8112 KiB
15Időlimit túllépés2.099s7476 KiB
16Időlimit túllépés2.085s7988 KiB
17Időlimit túllépés2.078s8344 KiB
18Időlimit túllépés2.078s8272 KiB
subtask40/59
19Időlimit túllépés2.084s9524 KiB
20Időlimit túllépés2.085s12084 KiB
21Időlimit túllépés2.085s11828 KiB
22Időlimit túllépés2.085s14392 KiB
23Időlimit túllépés2.078s14900 KiB
24Hibás válasz277ms13620 KiB
25Időlimit túllépés2.079s28160 KiB
26Időlimit túllépés2.079s29484 KiB
27Időlimit túllépés2.088s59956 KiB
28Időlimit túllépés2.089s57204 KiB
29Időlimit túllépés2.094s69904 KiB
30Időlimit túllépés2.092s74164 KiB
31Időlimit túllépés2.092s78644 KiB
32Időlimit túllépés2.088s87604 KiB
33Időlimit túllépés2.089s66300 KiB