6718 2023. 12. 17 19:40:25 111 Titkos sorozat cpp17 Elfogadva 40/40 35ms 16696 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define double long double

#define pii pair<int, int>

signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
#ifdef CB
	freopen("be2.txt", "r", stdin);
//	freopen("out.txt", "w", stdout);
#endif
	int N;
	cin >> N;
	vector<vector<int>> g(N + 1);
	vector<int> w(N + 1);
	for (int a = 1; a <= N; a++) {
		int b;
		cin >> b;
		w[a]=b;
		if (b == -1) {
			g[0].push_back(a);
		}
		else {
			g[b].push_back(a);
		}
	}
	vector<int> a(N + 1, -1);
	int x = N;
	deque<int> q;
	a[0] = 0;
	q.push_back(0);
	while (!q.empty()) {
		int i = q.front();
		q.pop_front();
		for (int j : g[i]) {
			if (a[j] == -1) {
				a[j] = x--;
				q.push_back(j);
			}
		}
	}
	for (int i = 1; i <= N; i++) {
		cout << a[i] << ' ';
	}
	cout << '\n';
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 3ms 1828 KiB
2 Elfogadva 0/0 18ms 7796 KiB
3 Elfogadva 1/1 3ms 2280 KiB
4 Elfogadva 1/1 3ms 2452 KiB
5 Elfogadva 2/2 3ms 2668 KiB
6 Elfogadva 1/1 3ms 2816 KiB
7 Elfogadva 1/1 3ms 2964 KiB
8 Elfogadva 2/2 3ms 2848 KiB
9 Elfogadva 2/2 35ms 14572 KiB
10 Elfogadva 2/2 35ms 14848 KiB
11 Elfogadva 2/2 34ms 14432 KiB
12 Elfogadva 2/2 35ms 14644 KiB
13 Elfogadva 2/2 34ms 14860 KiB
14 Elfogadva 2/2 34ms 14884 KiB
15 Elfogadva 2/2 34ms 15404 KiB
16 Elfogadva 3/3 34ms 15492 KiB
17 Elfogadva 3/3 34ms 15716 KiB
18 Elfogadva 3/3 34ms 15700 KiB
19 Elfogadva 3/3 35ms 15792 KiB
20 Elfogadva 3/3 35ms 16696 KiB
21 Elfogadva 1/1 32ms 15932 KiB
22 Elfogadva 1/1 32ms 15864 KiB
23 Elfogadva 1/1 32ms 15988 KiB