64722023-12-02 18:08:46CWMTitkos sorozatcpp17Hibás válasz 0/4065ms24416 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 (size_t i = 0; i < g[index].size(); i++)
		{
			q.push(*(g[index].begin())+i);
		}
	}
	for (size_t i = 0; i < n; i++)
	{
		cout << res[i] << " ";
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/40
1Elfogadva0/03ms1820 KiB
2Hibás válasz0/032ms12084 KiB
3Hibás válasz0/13ms2232 KiB
4Hibás válasz0/13ms2456 KiB
5Hibás válasz0/23ms2648 KiB
6Hibás válasz0/13ms3232 KiB
7Hibás válasz0/13ms3176 KiB
8Hibás válasz0/23ms3364 KiB
9Hibás válasz0/265ms23556 KiB
10Hibás válasz0/264ms23404 KiB
11Hibás válasz0/264ms23664 KiB
12Hibás válasz0/264ms23508 KiB
13Hibás válasz0/264ms23524 KiB
14Hibás válasz0/264ms23912 KiB
15Hibás válasz0/264ms23868 KiB
16Hibás válasz0/364ms24120 KiB
17Hibás válasz0/364ms24076 KiB
18Hibás válasz0/364ms24100 KiB
19Hibás válasz0/361ms24328 KiB
20Hibás válasz0/364ms24416 KiB
21Hibás válasz0/161ms23144 KiB
22Hibás válasz0/159ms23040 KiB
23Hibás válasz0/157ms22436 KiB