64732023-12-02 18:13:44CWMTitkos sorozatcpp17Elfogadva 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] << " ";
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/03ms1812 KiB
2Elfogadva0/034ms12132 KiB
3Elfogadva1/13ms2284 KiB
4Elfogadva1/13ms2488 KiB
5Elfogadva2/23ms2724 KiB
6Elfogadva1/14ms3168 KiB
7Elfogadva1/13ms3304 KiB
8Elfogadva2/23ms3308 KiB
9Elfogadva2/270ms23476 KiB
10Elfogadva2/268ms23556 KiB
11Elfogadva2/268ms23740 KiB
12Elfogadva2/265ms23816 KiB
13Elfogadva2/268ms23924 KiB
14Elfogadva2/265ms23844 KiB
15Elfogadva2/264ms23836 KiB
16Elfogadva3/364ms23840 KiB
17Elfogadva3/365ms23840 KiB
18Elfogadva3/364ms23792 KiB
19Elfogadva3/364ms23788 KiB
20Elfogadva3/363ms23784 KiB
21Elfogadva1/161ms22492 KiB
22Elfogadva1/163ms22260 KiB
23Elfogadva1/161ms21904 KiB