766 2022. 01. 09 18:48:42 Szin Attila Titkos sorozat cpp14 Elfogadva 40/40 45ms 26872 KiB
#include <bits/stdc++.h>
using namespace std;
#define InTheNameOfGod ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);
using ll = long long;

const int maxN = 2e5 + 5;
const int MOD = 1e9 + 7;

vector<vector<int> > g(maxN);
vector<int> sorrend, mo;


int main() {

#pragma region
#ifndef ONLINE_JUDGE
   freopen("../input.txt", "r", stdin);
   freopen("../output.txt", "w", stdout);
#endif

   InTheNameOfGod;
#pragma endregion
    
    int n;
    cin >> n;
    vector<int> v(n), fugges(n, 0);
    mo.resize(n, -1);
    for(int i = 0; i < n; i++) {
        cin >> v[i];
    }
    int curr = n;

    queue<int> sor;
    for(int i = 0; i < n; i++) {
        if(v[i] == -1) {
            mo[i] = curr--;
            sor.push(i+1);
        }
        else {
            g[v[i]].push_back(i+1);
            fugges[i+1]++;
        }
    }

    while(!sor.empty()) {
        int curr = sor.front();
		sor.pop();

		if(v[curr-1] != -1) sorrend.push_back(curr-1);
        for(int sz : g[curr]) {
            if(--fugges[sz] == 0) {
                sor.push(sz);
            }
        }  
    }
    reverse(sorrend.begin(), sorrend.end());
    for(int i = 0; i < sorrend.size(); i++) {
        mo[sorrend[i]] = i+1;
    }

    for(int a : mo) cout << a << ' ';

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 7ms 10924 KiB
2 Elfogadva 0/0 23ms 15028 KiB
3 Elfogadva 1/1 7ms 11188 KiB
4 Elfogadva 1/1 6ms 11188 KiB
5 Elfogadva 2/2 6ms 11196 KiB
6 Elfogadva 1/1 6ms 11328 KiB
7 Elfogadva 1/1 8ms 11328 KiB
8 Elfogadva 2/2 6ms 11332 KiB
9 Elfogadva 2/2 39ms 18864 KiB
10 Elfogadva 2/2 39ms 19448 KiB
11 Elfogadva 2/2 37ms 20020 KiB
12 Elfogadva 2/2 37ms 20612 KiB
13 Elfogadva 2/2 37ms 21204 KiB
14 Elfogadva 2/2 45ms 21816 KiB
15 Elfogadva 2/2 37ms 22592 KiB
16 Elfogadva 3/3 35ms 23208 KiB
17 Elfogadva 3/3 37ms 23940 KiB
18 Elfogadva 3/3 39ms 24576 KiB
19 Elfogadva 3/3 35ms 25380 KiB
20 Elfogadva 3/3 35ms 26872 KiB
21 Elfogadva 1/1 34ms 25596 KiB
22 Elfogadva 1/1 34ms 26080 KiB
23 Elfogadva 1/1 34ms 26456 KiB