81372024-01-12 14:18:34ZsBalazsTitkos sorozatcpp17Wrong answer 0/40247ms131028 KiB
#include <bits/stdc++.h>
using namespace std;

vector<vector<long long>> graph;
vector<long long> megoldas;
vector<long long> mutat;
vector<bool> volt;

void bejar(long long current) {
    if (volt[current]) return;
    
    volt[current] = true;
    
    for (long long szom : graph[current]) {
        if (megoldas[szom] < megoldas[current]+1) {
            megoldas[szom] = megoldas[current]+1;
        }
        mutat[szom]--;
    }
}

int main() {
    long long n;
    cin >> n;
    
    graph.resize(n);
    megoldas.assign(n, 0);
    mutat.assign(n, 0);
    volt.assign(n, false);
    
    for (long long i = 0; n > i; i++) {
        long long temp;
        cin >> temp;
        
        if (temp != -1) {
            temp--;
            
            mutat[temp]++;
            graph[i].push_back(temp);
            
            for (long long j = i+1; temp > j; j++) {
                mutat[i]++;
                graph[j].push_back(i);
            }
        } else {
            for (long long j = i+1; n > j; j++) {
                graph[j].push_back(i);
                mutat[i]++;
            }
        }
    }
    
    long long counter = 0;
    while (counter < n) {
        for (long long i = 0; n > i; i++) {
            if (mutat[i] == 0) {
                bejar(i);
                counter++;
            }
        }   
    }
    
    // megoldas, index
    vector<pair<long long, long long>> sor;
    
    for (long long i = 0; n > i; i++) {
        sor.push_back({megoldas[i], i});
    }
    
    sort(sor.begin(), sor.end());
    
    vector<long long> ans(n, 0);
    
    long long next = 1;
    for (long long i = 0; n > i; i++) {
        long long index = sor[i].second;
        
        ans[index] = next;
        
        next++;
    }
    
    for (long long a : ans) {
        cout << a << " ";
    }
    cout << endl;
    
	return 0;
}
SubtaskSumTestVerdictTimeMemory
base0/40
1Accepted0/03ms1844 KiB
2Wrong answer0/046ms13944 KiB
3Wrong answer0/13ms2624 KiB
4Wrong answer0/13ms2648 KiB
5Wrong answer0/23ms2896 KiB
6Wrong answer0/14ms3404 KiB
7Wrong answer0/13ms3412 KiB
8Wrong answer0/24ms3836 KiB
9Wrong answer0/2122ms43288 KiB
10Runtime error0/2194ms131028 KiB
11Wrong answer0/2103ms32396 KiB
12Wrong answer0/296ms29672 KiB
13Wrong answer0/293ms29224 KiB
14Wrong answer0/290ms28312 KiB
15Wrong answer0/287ms27492 KiB
16Wrong answer0/386ms27840 KiB
17Wrong answer0/386ms28264 KiB
18Wrong answer0/386ms28580 KiB
19Wrong answer0/386ms28544 KiB
20Wrong answer0/378ms28296 KiB
21Runtime error0/1247ms130240 KiB
22Runtime error0/1238ms130196 KiB
23Runtime error0/1234ms130200 KiB