結果
| 問題 |
No.59 鉄道の旅
|
| コンテスト | |
| ユーザー |
バカらっく
|
| 提出日時 | 2019-09-22 09:35:53 |
| 言語 | Kotlin (2.1.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,554 bytes |
| コンパイル時間 | 14,887 ms |
| コンパイル使用メモリ | 456,244 KB |
| 実行使用メモリ | 108,604 KB |
| 最終ジャッジ日時 | 2024-09-19 03:27:02 |
| 合計ジャッジ時間 | 23,353 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | TLE * 1 -- * 11 |
コンパイルメッセージ
Main.kt:1:10: warning: parameter 'arr' is never used
fun main(arr:Array<String>) {
^
ソースコード
fun main(arr:Array<String>) {
val(station, limit) = readLine()!!.trim().split(" ").map { it.toInt() }
val log = (1..station).map { readLine()!!.trim().toInt() }
val block = 1000
val count = mutableMapOf<Int, Int>()
val count1000 = mutableMapOf<Int, Int>()
for(i in log) {
if(i >= 0) {
val key1000 = i / block
var cnt = count1000.filter { it.key > key1000 }.map { it.value }.sum()
if(cnt >= limit) {
continue
}
cnt += count.filter { it.key>=i && it.key < (key1000+1)*block }.map { it.value }.sum()
if(cnt >= limit) {
continue
}
count[i]?.also {
count[i] = it + 1
}?: run {
count[i] = 1
}
count1000[key1000]?.also {
count1000[key1000] = it + 1
} ?: run {
count1000[key1000] = 1
}
} else {
val key = i * -1
count[key]?.let { a ->
if(a <= 1) {
count.remove(key)
} else {
count[key] = a - 1
}
val key1000 = key / block
count1000[key1000]?.let {
if(it <= 1) {
count1000.remove(key1000)
} else {
count1000[key1000] = it -1
}
}
}
}
}
println(count.map { it.value }.sum())
}
バカらっく