Submission #43366069


Source Code Expand

import std;

void read(T...)(string S, ref T args) {
    auto buf = S.split;
    foreach (i, ref arg; args) {
        arg = buf[i].to!(typeof(arg));
    }
}

void main () {
    int N1, N2, M; readln.read(N1, N2, M);
    int[][] graph = new int[][](N1+N2, 0);

    foreach (_; 0..M) {
        int a, b; readln.read(a, b);
        a--, b--;
        graph[a] ~= b;
        graph[b] ~= a;
    }
    solve(N1, N2, M, graph);
}

void solve (int N1, int N2, int M, int[][] graph) {
    // 選ぶ頂点は 1 <= u <= N1 と N1+1 <= v <= N1+N2 なことに注意

    int[] visited = new int[](N1+N2);
    DList!int Q;
    { // 頂点1からの連結成分の調査
        visited[] = -1;
        visited[0] = 0;
        Q.insert(0);
        while (!Q.empty) {
            auto begin = Q.front; Q.removeFront;
            foreach (to; graph[begin]) {
                if (visited[to] == -1) {
                    visited[to] = visited[begin] + 1;
                    Q.insert(to);
                }
            }
        }
    }

    // 頂点uを選ぶ
    import std.algorithm : reduce;
    int u = reduce!(max)(visited[0..N1]);

    { // 頂点N1+N2からの連結成分の調査
        visited[] = -1;
        visited[N1+N2-1] = 0;
        Q.insert(N1+N2-1);
        while (!Q.empty) {
            auto begin = Q.front; Q.removeFront;
            foreach (to; graph[begin]) {
                if (visited[to] == -1) {
                    visited[to] = visited[begin] + 1;
                    Q.insert(to);
                }
            }
        }
    }

    // 頂点vを選ぶ
    int v = reduce!(max)(visited[N1..$]);

    writeln(u+v+1);
}

Submission Info

Submission Time
Task D - Add One Edge
User InTheBloom
Language D (DMD 2.091.0)
Score 400
Code Size 1704 Byte
Status AC
Exec Time 403 ms
Memory 30136 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 2
AC × 51
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_small_00.txt, 01_small_01.txt, 01_small_02.txt, 01_small_03.txt, 01_small_04.txt, 01_small_05.txt, 01_small_06.txt, 01_small_07.txt, 01_small_08.txt, 01_small_09.txt, 01_small_10.txt, 01_small_11.txt, 01_small_12.txt, 02_rnd_00.txt, 02_rnd_01.txt, 02_rnd_02.txt, 02_rnd_03.txt, 02_rnd_04.txt, 02_rnd_05.txt, 02_rnd_06.txt, 02_rnd_07.txt, 02_rnd_08.txt, 02_rnd_09.txt, 03_path_00.txt, 03_path_01.txt, 03_path_02.txt, 03_path_03.txt, 04_semilong_00.txt, 04_semilong_01.txt, 04_semilong_02.txt, 04_semilong_03.txt, 04_semilong_04.txt, 04_semilong_05.txt, 04_semilong_06.txt, 04_semilong_07.txt, 04_semilong_08.txt, 04_semilong_09.txt, 05_dense_00.txt, 05_dense_01.txt, 05_dense_02.txt, 05_dense_03.txt, 05_dense_04.txt, 05_dense_05.txt, 05_dense_06.txt, 05_dense_07.txt, 06_star_00.txt, 06_star_01.txt, 06_star_02.txt, 06_star_03.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 6 ms 3580 KiB
00_sample_01.txt AC 2 ms 3552 KiB
01_small_00.txt AC 2 ms 3576 KiB
01_small_01.txt AC 7 ms 3608 KiB
01_small_02.txt AC 2 ms 3520 KiB
01_small_03.txt AC 3 ms 3648 KiB
01_small_04.txt AC 2 ms 3568 KiB
01_small_05.txt AC 2 ms 3592 KiB
01_small_06.txt AC 3 ms 3644 KiB
01_small_07.txt AC 2 ms 3500 KiB
01_small_08.txt AC 2 ms 3524 KiB
01_small_09.txt AC 2 ms 3512 KiB
01_small_10.txt AC 2 ms 3532 KiB
01_small_11.txt AC 3 ms 3496 KiB
01_small_12.txt AC 2 ms 3548 KiB
02_rnd_00.txt AC 356 ms 27132 KiB
02_rnd_01.txt AC 287 ms 25716 KiB
02_rnd_02.txt AC 332 ms 27160 KiB
02_rnd_03.txt AC 300 ms 26092 KiB
02_rnd_04.txt AC 326 ms 26428 KiB
02_rnd_05.txt AC 225 ms 19636 KiB
02_rnd_06.txt AC 176 ms 13912 KiB
02_rnd_07.txt AC 303 ms 24012 KiB
02_rnd_08.txt AC 194 ms 14700 KiB
02_rnd_09.txt AC 238 ms 21564 KiB
03_path_00.txt AC 399 ms 28460 KiB
03_path_01.txt AC 397 ms 28424 KiB
03_path_02.txt AC 401 ms 28456 KiB
03_path_03.txt AC 403 ms 28448 KiB
04_semilong_00.txt AC 291 ms 26848 KiB
04_semilong_01.txt AC 259 ms 26324 KiB
04_semilong_02.txt AC 292 ms 27096 KiB
04_semilong_03.txt AC 288 ms 26876 KiB
04_semilong_04.txt AC 313 ms 27028 KiB
04_semilong_05.txt AC 375 ms 27644 KiB
04_semilong_06.txt AC 328 ms 26060 KiB
04_semilong_07.txt AC 357 ms 27368 KiB
04_semilong_08.txt AC 351 ms 27020 KiB
04_semilong_09.txt AC 377 ms 28108 KiB
05_dense_00.txt AC 118 ms 11712 KiB
05_dense_01.txt AC 118 ms 11640 KiB
05_dense_02.txt AC 117 ms 11728 KiB
05_dense_03.txt AC 121 ms 11804 KiB
05_dense_04.txt AC 112 ms 11700 KiB
05_dense_05.txt AC 113 ms 11888 KiB
05_dense_06.txt AC 112 ms 11876 KiB
05_dense_07.txt AC 115 ms 11824 KiB
06_star_00.txt AC 319 ms 29532 KiB
06_star_01.txt AC 323 ms 30136 KiB
06_star_02.txt AC 153 ms 15536 KiB
06_star_03.txt AC 155 ms 15600 KiB