64732023-12-02 18:13:44CWMTitkos sorozatcpp17Accepted 40/4070ms23924 KiB
#include <iostream>
#include <vector>
#include <set>
#include <queue>

using namespace std;

int main()
{
    int n;
    cin >> n;
	vector<int> res(n);
	vector<int> input;
	int last = -1;
	int lPN = n;
	vector<set<int>> g(n);
	queue<int> q;
	for (size_t i = 0; i < n; i++)
	{
		int a;
		cin >> a;
		input.push_back(a);
		a--;
		if (a == -2) {
			q.push(i);
		}
		else {
			g[a].insert(i);
		}
	}
	while (!q.empty())
	{
		int index = q.front();
		q.pop();
		res[index] = lPN--;
		for (auto n : g[index]) {
			q.push(n);
		}
	}
	for (size_t i = 0; i < n; i++)
	{
		cout << res[i] << " ";
	}
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/03ms1812 KiB
2Accepted0/034ms12132 KiB
3Accepted1/13ms2284 KiB
4Accepted1/13ms2488 KiB
5Accepted2/23ms2724 KiB
6Accepted1/14ms3168 KiB
7Accepted1/13ms3304 KiB
8Accepted2/23ms3308 KiB
9Accepted2/270ms23476 KiB
10Accepted2/268ms23556 KiB
11Accepted2/268ms23740 KiB
12Accepted2/265ms23816 KiB
13Accepted2/268ms23924 KiB
14Accepted2/265ms23844 KiB
15Accepted2/264ms23836 KiB
16Accepted3/364ms23840 KiB
17Accepted3/365ms23840 KiB
18Accepted3/364ms23792 KiB
19Accepted3/364ms23788 KiB
20Accepted3/363ms23784 KiB
21Accepted1/161ms22492 KiB
22Accepted1/163ms22260 KiB
23Accepted1/161ms21904 KiB