Submission #71703652


Source Code Expand

fun main() {
    val cin = System.`in`.bufferedReader()
    val cout = System.out.bufferedWriter()

    class DSU(n: Int) {
        private val p = IntArray(n)
        var cnt = n

        init {
            for (i in 0 until n) p[i] = i
        }

        fun p(i: Int): Int {
            if (p[i] != i) p[i] = p(p[i])
            return p[i]
        }

        fun j(i: Int, j: Int) {
            val pi = p(i)
            val pj = p(j)
            if (pi != pj){
                p[i] = pj
                cnt--
            }
        }
    }

    var n = cin.readLine().toInt()
    var p = cin.readLine().split(" ").map { it.toInt() - 1 }
    val dsu = DSU(n)
    for (i in 0 until n) {
        dsu.j(i, p[i])
    }
    var ans = 0L
    val cnt= IntArray(n)
    for (i in 0 until n) {
        cnt[dsu.p(i)]++
    }
    for (v in cnt) if (v > 1) ans += v.toLong()*(v-1)/2

    cout.write("${ans}")
    cout.newLine()
    cout.flush()
}

Submission Info

Submission Time
Task E - Minimum Swap
User jagbarrameda
Language Kotlin (Kotlin/JVM 2.2.10)
Score 475
Code Size 981 Byte
Status AC
Exec Time 284 ms
Memory 84936 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 475 / 475
Status
AC × 3
AC × 53
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt, 01_random_49.txt, 01_random_50.txt, 01_random_51.txt, 01_random_52.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 68 ms 42632 KiB
00_sample_01.txt AC 63 ms 42464 KiB
00_sample_02.txt AC 65 ms 42984 KiB
01_random_03.txt AC 266 ms 84772 KiB
01_random_04.txt AC 278 ms 83836 KiB
01_random_05.txt AC 261 ms 84364 KiB
01_random_06.txt AC 278 ms 84252 KiB
01_random_07.txt AC 265 ms 84768 KiB
01_random_08.txt AC 260 ms 84104 KiB
01_random_09.txt AC 260 ms 84636 KiB
01_random_10.txt AC 270 ms 83916 KiB
01_random_11.txt AC 275 ms 84516 KiB
01_random_12.txt AC 264 ms 84500 KiB
01_random_13.txt AC 274 ms 84008 KiB
01_random_14.txt AC 266 ms 84100 KiB
01_random_15.txt AC 260 ms 83872 KiB
01_random_16.txt AC 235 ms 69984 KiB
01_random_17.txt AC 228 ms 70304 KiB
01_random_18.txt AC 122 ms 46528 KiB
01_random_19.txt AC 163 ms 53372 KiB
01_random_20.txt AC 268 ms 75912 KiB
01_random_21.txt AC 276 ms 84524 KiB
01_random_22.txt AC 269 ms 84436 KiB
01_random_23.txt AC 274 ms 83992 KiB
01_random_24.txt AC 269 ms 84060 KiB
01_random_25.txt AC 271 ms 84700 KiB
01_random_26.txt AC 262 ms 84172 KiB
01_random_27.txt AC 260 ms 84800 KiB
01_random_28.txt AC 284 ms 84536 KiB
01_random_29.txt AC 279 ms 84172 KiB
01_random_30.txt AC 262 ms 83892 KiB
01_random_31.txt AC 263 ms 83676 KiB
01_random_32.txt AC 267 ms 83964 KiB
01_random_33.txt AC 264 ms 84080 KiB
01_random_34.txt AC 271 ms 84600 KiB
01_random_35.txt AC 275 ms 84156 KiB
01_random_36.txt AC 262 ms 83832 KiB
01_random_37.txt AC 207 ms 70268 KiB
01_random_38.txt AC 218 ms 68156 KiB
01_random_39.txt AC 241 ms 68964 KiB
01_random_40.txt AC 260 ms 75584 KiB
01_random_41.txt AC 185 ms 56300 KiB
01_random_42.txt AC 193 ms 59284 KiB
01_random_43.txt AC 139 ms 49160 KiB
01_random_44.txt AC 219 ms 70164 KiB
01_random_45.txt AC 177 ms 56032 KiB
01_random_46.txt AC 257 ms 84036 KiB
01_random_47.txt AC 257 ms 84060 KiB
01_random_48.txt AC 255 ms 84332 KiB
01_random_49.txt AC 265 ms 84896 KiB
01_random_50.txt AC 262 ms 83932 KiB
01_random_51.txt AC 247 ms 84012 KiB
01_random_52.txt AC 241 ms 84936 KiB