Submission #36861178


Source Code Expand

// Not my code! Taken from https://atcoder.jp/contests/abc279/submissions/36844595
// and directly line by line converted to D language. Added "@safe:" directive
// at the top, moved "scanf" into a small @trusted wrapper function and replaced
// "printf" with "writeln".
//
// The size of the "idx" array is deliberately reduced from 600005 to 300005
// and @safe is commented out (for testing what happens without runtime bounds
// checking).

//@safe:
import std.stdio, core.stdc.stdio;

int[600005] fa;

void init() {
    fa[] = -1;
}

int find_root(int x) {
    if (fa[x] == -1) {
	return x;
    }
    return fa[x] = find_root(fa[x]);
}

void unite(int x, int y) {
    if (find_root(x) != find_root(y) && find_root(x) != -1) {
	fa[find_root(x)] = find_root(y);
    }
}

int[300005] now;
int[300005] idx;
int[600005] past;

int main() {
    init();
    int n = readint;
    int q = readint;
    for (int i = 0; i < n; i++) {
	now[i] = i;
	past[i] = i;
	idx[i] = i;
    }
    int cntn = n - 1;
    int cnt = n - 1;
    while (q--) {
	int tp = readint;
	if (tp == 1) {
	    int x = readint;
	    int y = readint;
	    x--, y--;
	    unite(now[y], now[x]);
	    now[y] = ++cntn;
	    past[cntn] = y;
	} else if (tp == 2) {
	    int x = readint;
	    x--;
	    idx[++cnt] = now[x];
	} else {
	    int x = readint;
	    x--;
	    writeln(past[find_root(idx[x])] + 1);
	}
    }
    return 0;
}

int readint() @trusted {
    int val;
    scanf("%d", &val); // "scanf" is not @safe and needs a @trusted wrapper
    return val;
}

Submission Info

Submission Time
Task F - BOX
User ssvb
Language D (GDC 9.2.1)
Score 0
Code Size 1597 Byte
Status WA
Exec Time 102 ms
Memory 15452 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 500
Status
AC × 1
AC × 64
WA × 8
Set Name Test Cases
Sample sample_01.txt
All sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt, test_61.txt, test_62.txt, test_63.txt, test_64.txt, test_65.txt, test_66.txt, test_67.txt, test_68.txt, test_69.txt, test_70.txt, test_71.txt
Case Name Status Exec Time Memory
sample_01.txt AC 34 ms 13880 KiB
test_01.txt AC 13 ms 13576 KiB
test_02.txt AC 75 ms 13908 KiB
test_03.txt AC 76 ms 13832 KiB
test_04.txt AC 73 ms 13832 KiB
test_05.txt AC 72 ms 13820 KiB
test_06.txt AC 76 ms 13908 KiB
test_07.txt AC 73 ms 13892 KiB
test_08.txt AC 75 ms 13908 KiB
test_09.txt AC 74 ms 13760 KiB
test_10.txt AC 75 ms 13896 KiB
test_11.txt AC 75 ms 13896 KiB
test_12.txt AC 73 ms 13912 KiB
test_13.txt AC 72 ms 13572 KiB
test_14.txt AC 71 ms 13904 KiB
test_15.txt AC 73 ms 13844 KiB
test_16.txt AC 74 ms 13836 KiB
test_17.txt AC 75 ms 13892 KiB
test_18.txt AC 75 ms 13836 KiB
test_19.txt AC 73 ms 13796 KiB
test_20.txt AC 73 ms 13656 KiB
test_21.txt AC 76 ms 13908 KiB
test_22.txt AC 74 ms 13788 KiB
test_23.txt AC 77 ms 13916 KiB
test_24.txt AC 76 ms 13896 KiB
test_25.txt AC 77 ms 13912 KiB
test_26.txt AC 80 ms 13796 KiB
test_27.txt AC 79 ms 13824 KiB
test_28.txt AC 81 ms 13768 KiB
test_29.txt AC 79 ms 13824 KiB
test_30.txt AC 76 ms 13916 KiB
test_31.txt AC 80 ms 13612 KiB
test_32.txt AC 83 ms 13836 KiB
test_33.txt AC 86 ms 13656 KiB
test_34.txt AC 87 ms 13896 KiB
test_35.txt AC 88 ms 13836 KiB
test_36.txt AC 88 ms 13820 KiB
test_37.txt WA 95 ms 13616 KiB
test_38.txt WA 93 ms 13660 KiB
test_39.txt AC 86 ms 13572 KiB
test_40.txt AC 81 ms 13892 KiB
test_41.txt AC 96 ms 13768 KiB
test_42.txt WA 95 ms 13892 KiB
test_43.txt WA 97 ms 13776 KiB
test_44.txt WA 95 ms 13912 KiB
test_45.txt WA 93 ms 13792 KiB
test_46.txt WA 102 ms 13904 KiB
test_47.txt WA 62 ms 13824 KiB
test_48.txt AC 82 ms 13820 KiB
test_49.txt AC 88 ms 13832 KiB
test_50.txt AC 85 ms 13760 KiB
test_51.txt AC 88 ms 13832 KiB
test_52.txt AC 99 ms 13916 KiB
test_53.txt AC 94 ms 13764 KiB
test_54.txt AC 99 ms 13868 KiB
test_55.txt AC 97 ms 13916 KiB
test_56.txt AC 101 ms 13916 KiB
test_57.txt AC 100 ms 13896 KiB
test_58.txt AC 97 ms 13764 KiB
test_59.txt AC 99 ms 13572 KiB
test_60.txt AC 100 ms 13836 KiB
test_61.txt AC 86 ms 13832 KiB
test_62.txt AC 87 ms 13580 KiB
test_63.txt AC 85 ms 13900 KiB
test_64.txt AC 84 ms 13900 KiB
test_65.txt AC 85 ms 13576 KiB
test_66.txt AC 83 ms 13832 KiB
test_67.txt AC 87 ms 13788 KiB
test_68.txt AC 83 ms 13696 KiB
test_69.txt AC 83 ms 13576 KiB
test_70.txt AC 67 ms 15352 KiB
test_71.txt AC 67 ms 15452 KiB