提出 #44760033


ソースコード 拡げる

import std;

void main () {
    int N = readln.chomp.to!int;
    int[] C = new int[](N);
    int[][] P = new int[][](N, 0);
    foreach (i; 0..N) {
        auto input = readln.split.to!(int[]);
        C[i] = input[0];
        P[i] = input[1..$];

        // 0-indexed
        P[i][] -= 1;
        C[i] -= 1;
    }

    solve(N, C, P);
}

void solve (int N, int[] C, int[][] P) {
    int[][] graph = new int[][](N, 0);

    foreach (i; 0..N) {
        foreach (p; P[i]) {
            graph[i] ~= p;
        }
    }

    // 本1からの連結成分を見つける

    DList!int Q;
    Q.insertBack(0);
    bool[] need = new bool[](N);
    need[0] = true;
    int[] outdegree = new int[](N);

    while (!Q.empty) {
        auto begin = Q.front; Q.removeFront;
        foreach (to; graph[begin]) {
            outdegree[begin]++;
            if (!need[to]) {
                need[to] = true;
                Q.insertBack(to);
            }
        }
    }

    foreach (i; 0..N) {
        foreach (p; P[i]) {
            graph[p] ~= i;
        }
    }

    int[] ans; reserve(ans, N);

    foreach (i; 0..N) {
        if (outdegree[i] == 0 && need[i]) {
            ans ~= i+1;
            Q.insertBack(i);
        }
    }

    while (!Q.empty) {
        auto begin = Q.front; Q.removeFront;
        foreach (to; graph[begin]) {
            outdegree[to]--;
            if (outdegree[to] == 0 && to != 0) {
                ans ~= to+1;
                Q.insertBack(to);
            }
        }
    }

    foreach (i, a; ans) {
        write(a, (i == ans.length-1 ? '\n' : ' '));
    }
}

提出情報

提出日時
問題 E - Prerequisites
ユーザ InTheBloom
言語 D (DMD 2.104.0)
得点 425
コード長 1664 Byte
結果 AC
実行時間 378 ms
メモリ 44684 KiB

コンパイルエラー

/home/runner/.dub/packages/mir-algorithm/3.20.4/mir-algorithm/source/mir/serde.d(52,9): Deprecation: alias this for classes/interfaces is deprecated

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 425 / 425
結果
AC × 3
AC × 37
セット名 テストケース
Sample sample00.txt, sample01.txt, sample02.txt
All sample00.txt, sample01.txt, sample02.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt, testcase20.txt, testcase21.txt, testcase22.txt, testcase23.txt, testcase24.txt, testcase25.txt, testcase26.txt, testcase27.txt, testcase28.txt, testcase29.txt, testcase30.txt, testcase31.txt, testcase32.txt, testcase33.txt
ケース名 結果 実行時間 メモリ
sample00.txt AC 1 ms 3756 KiB
sample01.txt AC 1 ms 3824 KiB
sample02.txt AC 1 ms 3768 KiB
testcase00.txt AC 365 ms 35012 KiB
testcase01.txt AC 378 ms 35388 KiB
testcase02.txt AC 339 ms 30892 KiB
testcase03.txt AC 366 ms 33804 KiB
testcase04.txt AC 314 ms 33504 KiB
testcase05.txt AC 326 ms 36180 KiB
testcase06.txt AC 313 ms 31936 KiB
testcase07.txt AC 322 ms 35088 KiB
testcase08.txt AC 208 ms 30288 KiB
testcase09.txt AC 220 ms 30776 KiB
testcase10.txt AC 44 ms 14192 KiB
testcase11.txt AC 174 ms 36960 KiB
testcase12.txt AC 52 ms 14708 KiB
testcase13.txt AC 184 ms 36864 KiB
testcase14.txt AC 171 ms 34828 KiB
testcase15.txt AC 180 ms 34792 KiB
testcase16.txt AC 180 ms 34572 KiB
testcase17.txt AC 191 ms 34496 KiB
testcase18.txt AC 183 ms 34060 KiB
testcase19.txt AC 184 ms 34272 KiB
testcase20.txt AC 186 ms 31132 KiB
testcase21.txt AC 190 ms 34128 KiB
testcase22.txt AC 194 ms 44560 KiB
testcase23.txt AC 196 ms 44624 KiB
testcase24.txt AC 200 ms 44684 KiB
testcase25.txt AC 205 ms 44452 KiB
testcase26.txt AC 201 ms 39220 KiB
testcase27.txt AC 209 ms 43700 KiB
testcase28.txt AC 206 ms 29948 KiB
testcase29.txt AC 215 ms 30876 KiB
testcase30.txt AC 218 ms 30644 KiB
testcase31.txt AC 225 ms 30764 KiB
testcase32.txt AC 196 ms 29972 KiB
testcase33.txt AC 206 ms 30756 KiB