Submission #38798328


Source Code Expand

import java.io.BufferedReader
import java.io.PrintWriter

inline fun <R> read(func: BufferedReader.() -> R): R {
    return System.`in`.bufferedReader().use(func)
}
inline fun <R> write(func: PrintWriter.() -> R): R {
    return PrintWriter(System.out).use(func)
}
@kotlin.ExperimentalStdlibApi
fun main() = read{
    write {
        val testCase = readLine()!!.toInt()
        repeat(testCase) {
            val (n, m) = readLine()!!.split(' ').map(String::toInt)
            val color = readLine()!!.split(' ').map(String::toInt).toIntArray()
            val edges = List(m) {
                val (u, v) = readLine()!!.split(' ').map(String::toInt)
                u - 1 to v - 1
            }
            val graph = Array(n){ mutableListOf<Int>() }
            for ((u, v) in edges) {
                graph[u].add(v)
                graph[v].add(u)
            }
            val minStep = Array(n){IntArray(n){-1} }.also { it[0][n - 1] = 0 }
            val queue = ArrayDeque<Pair<Int, Int>>(listOf(0 to n - 1))
            while (queue.isNotEmpty()) {
                val (takahashi, aoki) = queue.removeFirst()
                val step = minStep[takahashi][aoki]
                for (nextTakahashi in graph[takahashi]) {
                    for (nextAoki in graph[aoki]) {
                        if (color[nextTakahashi] == color[nextAoki]) continue
                        if (minStep[nextTakahashi][nextAoki] != -1) continue
                        minStep[nextTakahashi][nextAoki] = step + 1
                        queue.addLast(nextTakahashi to nextAoki)
                    }
                }
            }
            println(minStep[n - 1][0])
        }
    }
}

Submission Info

Submission Time
Task E - Swap Places
User yudedako
Language Kotlin (1.3.71)
Score 500
Code Size 1720 Byte
Status AC
Exec Time 709 ms
Memory 89264 KiB

Compile Error

warning: ATTENTION!
This build uses unsafe internal compiler arguments:

-XXLanguage:+InlineClasses

This mode is not recommended for production use,
as no stability/compatibility guarantees are given on
compiler or generated code. Use it at your own risk!

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 1
AC × 64
Set Name Test Cases
Sample 00_sample_00.txt
All 00_sample_00.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, 01_small_13.txt, 01_small_14.txt, 01_small_15.txt, 01_small_16.txt, 01_small_17.txt, 01_small_18.txt, 01_small_19.txt, 01_small_20.txt, 01_small_21.txt, 01_small_22.txt, 01_small_23.txt, 01_small_24.txt, 01_small_25.txt, 01_small_26.txt, 01_small_27.txt, 01_small_28.txt, 01_small_29.txt, 01_small_30.txt, 01_small_31.txt, 02_tree_00.txt, 02_tree_01.txt, 02_tree_02.txt, 02_tree_03.txt, 02_tree_04.txt, 02_tree_05.txt, 03_path_00.txt, 03_path_01.txt, 03_path_02.txt, 03_path_03.txt, 04_dense_00.txt, 04_dense_01.txt, 04_dense_02.txt, 04_dense_03.txt, 05_sparse_00.txt, 05_sparse_01.txt, 05_sparse_02.txt, 05_sparse_03.txt, 06_large_00.txt, 06_large_01.txt, 06_large_02.txt, 06_large_03.txt, 06_large_04.txt, 06_large_05.txt, 06_large_06.txt, 06_large_07.txt, 06_large_08.txt, 06_large_09.txt, 07_bridge_connected_00.txt, 07_bridge_connected_01.txt, 07_bridge_connected_02.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 140 ms 39996 KiB
01_small_00.txt AC 162 ms 42068 KiB
01_small_01.txt AC 122 ms 40132 KiB
01_small_02.txt AC 157 ms 42084 KiB
01_small_03.txt AC 134 ms 41052 KiB
01_small_04.txt AC 138 ms 41084 KiB
01_small_05.txt AC 143 ms 41372 KiB
01_small_06.txt AC 136 ms 41056 KiB
01_small_07.txt AC 142 ms 41412 KiB
01_small_08.txt AC 168 ms 45180 KiB
01_small_09.txt AC 157 ms 41964 KiB
01_small_10.txt AC 146 ms 41436 KiB
01_small_11.txt AC 170 ms 45252 KiB
01_small_12.txt AC 149 ms 41916 KiB
01_small_13.txt AC 166 ms 45376 KiB
01_small_14.txt AC 162 ms 44812 KiB
01_small_15.txt AC 152 ms 44540 KiB
01_small_16.txt AC 165 ms 44588 KiB
01_small_17.txt AC 165 ms 45112 KiB
01_small_18.txt AC 165 ms 45580 KiB
01_small_19.txt AC 162 ms 45736 KiB
01_small_20.txt AC 163 ms 44712 KiB
01_small_21.txt AC 166 ms 44860 KiB
01_small_22.txt AC 228 ms 49512 KiB
01_small_23.txt AC 201 ms 50020 KiB
01_small_24.txt AC 246 ms 49200 KiB
01_small_25.txt AC 263 ms 51848 KiB
01_small_26.txt AC 277 ms 47480 KiB
01_small_27.txt AC 203 ms 50360 KiB
01_small_28.txt AC 279 ms 49660 KiB
01_small_29.txt AC 362 ms 53560 KiB
01_small_30.txt AC 274 ms 50232 KiB
01_small_31.txt AC 240 ms 49860 KiB
02_tree_00.txt AC 709 ms 89264 KiB
02_tree_01.txt AC 198 ms 70012 KiB
02_tree_02.txt AC 203 ms 70436 KiB
02_tree_03.txt AC 272 ms 71164 KiB
02_tree_04.txt AC 204 ms 70756 KiB
02_tree_05.txt AC 295 ms 76616 KiB
03_path_00.txt AC 557 ms 78376 KiB
03_path_01.txt AC 208 ms 70352 KiB
03_path_02.txt AC 205 ms 70092 KiB
03_path_03.txt AC 221 ms 70488 KiB
04_dense_00.txt AC 519 ms 65304 KiB
04_dense_01.txt AC 526 ms 66044 KiB
04_dense_02.txt AC 498 ms 65960 KiB
04_dense_03.txt AC 502 ms 66428 KiB
05_sparse_00.txt AC 530 ms 80384 KiB
05_sparse_01.txt AC 210 ms 69900 KiB
05_sparse_02.txt AC 193 ms 69668 KiB
05_sparse_03.txt AC 199 ms 70032 KiB
06_large_00.txt AC 458 ms 79184 KiB
06_large_01.txt AC 446 ms 78568 KiB
06_large_02.txt AC 444 ms 78392 KiB
06_large_03.txt AC 526 ms 78872 KiB
06_large_04.txt AC 432 ms 78592 KiB
06_large_05.txt AC 458 ms 79444 KiB
06_large_06.txt AC 478 ms 78884 KiB
06_large_07.txt AC 454 ms 78708 KiB
06_large_08.txt AC 428 ms 78928 KiB
06_large_09.txt AC 433 ms 78648 KiB
07_bridge_connected_00.txt AC 319 ms 69816 KiB
07_bridge_connected_01.txt AC 338 ms 69212 KiB
07_bridge_connected_02.txt AC 177 ms 54244 KiB