結果
問題 | No.133 カードゲーム |
ユーザー | apprec |
提出日時 | 2020-05-30 15:54:25 |
言語 | Kotlin (1.9.23) |
結果 |
AC
|
実行時間 | 398 ms / 5,000 ms |
コード長 | 2,005 bytes |
コンパイル時間 | 16,289 ms |
コンパイル使用メモリ | 450,400 KB |
実行使用メモリ | 56,564 KB |
最終ジャッジ日時 | 2024-11-07 18:38:50 |
合計ジャッジ時間 | 27,050 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 396 ms
56,344 KB |
testcase_01 | AC | 395 ms
56,308 KB |
testcase_02 | AC | 396 ms
56,408 KB |
testcase_03 | AC | 392 ms
56,184 KB |
testcase_04 | AC | 389 ms
56,348 KB |
testcase_05 | AC | 398 ms
56,500 KB |
testcase_06 | AC | 396 ms
56,436 KB |
testcase_07 | AC | 394 ms
56,564 KB |
testcase_08 | AC | 398 ms
56,452 KB |
testcase_09 | AC | 395 ms
56,300 KB |
testcase_10 | AC | 395 ms
56,192 KB |
testcase_11 | AC | 396 ms
56,336 KB |
testcase_12 | AC | 396 ms
56,236 KB |
testcase_13 | AC | 389 ms
56,440 KB |
testcase_14 | AC | 388 ms
56,332 KB |
testcase_15 | AC | 387 ms
56,504 KB |
testcase_16 | AC | 396 ms
56,456 KB |
testcase_17 | AC | 397 ms
56,060 KB |
testcase_18 | AC | 396 ms
56,492 KB |
testcase_19 | AC | 393 ms
56,444 KB |
testcase_20 | AC | 393 ms
56,492 KB |
testcase_21 | AC | 392 ms
56,340 KB |
testcase_22 | AC | 395 ms
56,112 KB |
コンパイルメッセージ
Main.kt:67:10: warning: parameter 'args' is never used fun main(args: Array<String>) { ^ Main.kt:68:9: warning: variable 'N' is never used val N = readInt() ^
ソースコード
//package Qy import java.util.* import java.math.* import java.lang.Math.* import java.nio.IntBuffer private val readString: ()->String = {readLine()!!} private val readInt: ()->Int = {readLine()!!.toInt()} private val readLong: ()->Long = {readLine()!!.toLong()} private val readIntArray: ()->IntArray = {readLine()!!.split(' ').map{it.toInt()}.toIntArray()} private val readLongArray: ()->LongArray = {readLine()!!.split(' ').map{it.toLong()}.toLongArray()} private val errPrintln: (String)->Unit = {msg -> System.err.println(msg)} private val MOD = 1e9.toLong()+7 private val INF = Int.MAX_VALUE/2 private val LINF = Long.MAX_VALUE/2 private fun permutation(A: IntArray): List<IntArray> { val ary = A.sorted() val N = ary.size val used = BooleanArray(N){false} val hm = HashMap<IntBuffer, IntArray>() val ptn = ArrayList<Int>(0) fun dfs(n: Int) { if (n >= N) { val value = ptn.toIntArray() val key = IntBuffer.wrap(value) hm[key] = value } for (i in 0 until N) { if (used[i]) continue used[i] = true ptn.add(ary[i]) dfs(n+1) ptn.removeAt(ptn.lastIndex) used[i] = false } } dfs(0) val res = ArrayList<IntArray>() for (key in hm.keys.sorted()) { res.add(hm[key]!!) } return res.toList() } private fun solveY(A: IntArray, B: IntArray): Double { val a = A.sorted() val bPatterns = permutation(B) var aWin = 0 for (bPattern in bPatterns) { var aw = 0; var bw = 0; var draw = 0 a.forEachIndexed { i, v -> if (v > bPattern[i]) aw++ else if (v < bPattern[i]) bw++ else draw++ } if (aw > bw) aWin++ } return aWin.toDouble() / bPatterns.size } fun main(args: Array<String>) { val N = readInt() val A = readIntArray() val B = readIntArray() val ans = solveY(A, B) println("%.8f".format(ans)) }