結果
問題 | No.457 (^^*) |
ユーザー | qszhu |
提出日時 | 2022-10-09 17:32:14 |
言語 | Kotlin (1.9.23) |
結果 |
AC
|
実行時間 | 330 ms / 2,000 ms |
コード長 | 1,715 bytes |
コンパイル時間 | 16,562 ms |
コンパイル使用メモリ | 463,956 KB |
実行使用メモリ | 62,664 KB |
最終ジャッジ日時 | 2024-06-23 16:33:44 |
合計ジャッジ時間 | 21,262 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 318 ms
62,576 KB |
testcase_01 | AC | 318 ms
62,444 KB |
testcase_02 | AC | 316 ms
62,488 KB |
testcase_03 | AC | 321 ms
62,664 KB |
testcase_04 | AC | 321 ms
62,508 KB |
testcase_05 | AC | 316 ms
62,500 KB |
testcase_06 | AC | 325 ms
62,396 KB |
testcase_07 | AC | 318 ms
62,508 KB |
testcase_08 | AC | 321 ms
62,408 KB |
testcase_09 | AC | 319 ms
62,404 KB |
testcase_10 | AC | 330 ms
62,456 KB |
testcase_11 | AC | 321 ms
62,548 KB |
testcase_12 | AC | 320 ms
62,572 KB |
testcase_13 | AC | 322 ms
62,396 KB |
testcase_14 | AC | 318 ms
62,512 KB |
testcase_15 | AC | 314 ms
62,364 KB |
testcase_16 | AC | 316 ms
62,552 KB |
testcase_17 | AC | 316 ms
62,512 KB |
testcase_18 | AC | 309 ms
62,504 KB |
testcase_19 | AC | 315 ms
62,564 KB |
ソースコード
import kotlin.system.exitProcess val br = System.`in`.bufferedReader() fun readLine(): String? = br.readLine() fun readString() = readLine()!! fun readInt() = readString().toInt() fun readLong() = readString().toLong() fun readDouble() = readString().toDouble() fun readStrings() = readLine()?.split(" ")?.filter { it.isNotEmpty() } ?: listOf() fun readInts() = readStrings().map { it.toInt() }.toIntArray() fun readLongs() = readStrings().map { it.toLong() }.toLongArray() fun readDoubles() = readStrings().map { it.toDouble() }.toDoubleArray() fun readLines(n: Int) = Array(n) { readString() } const val MAX_STACK_SIZE: Long = 128 * 1024 * 1024 fun main() { val thread = Thread(null, ::run, "solve", MAX_STACK_SIZE) thread.setUncaughtExceptionHandler { _, e -> e.printStackTrace(); exitProcess(1) } thread.start() } fun run() { val S = readString() output(solve(S)) } fun solve(S: String): Pair<Int, Int> { // 01234 // L: (^^*) // R: (*^^) val dpL = IntArray(5) val dpR = IntArray(5) for (c in S) { when (c) { '(' -> { dpL[0]++ dpR[0]++ } '^' -> { dpL[2] += dpL[1].also { dpL[1] = dpL[0] }.also { dpL[0] = 0 } dpR[3] += dpR[2].also { dpR[2] = dpR[1] }.also { dpR[1] = 0 } } '*' -> { dpL[3] += dpL[2].also { dpL[2] = 0 } dpR[1] += dpR[0].also { dpR[0] = 0 } } ')' -> { dpL[4] += dpL[3] dpR[4] += dpR[3] } } } return dpL[4] to dpR[4] } fun output(res: Pair<Int, Int>) = println(res.toList().joinToString(" "))