結果
| 問題 | No.118 門松列(2) |
| コンテスト | |
| ユーザー |
バカらっく
|
| 提出日時 | 2019-10-02 03:08:04 |
| 言語 | Kotlin (2.4.10 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 342 ms / 5,000 ms |
| + 270µs | |
| コード長 | 908 bytes |
| 記録 | |
| コンパイル時間 | 8,438 ms |
| コンパイル使用メモリ | 519,340 KB |
| 実行使用メモリ | 61,448 KB |
| 最終ジャッジ日時 | 2026-09-09 11:22:57 |
| 合計ジャッジ時間 | 16,934 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 26 |
ソースコード
fun main(arr:Array<String>) {
val itemCount = readLine()!!.toInt()
val items = readLine()!!.split(" ").map { it.toInt() }.let { a-> a.toSet().sorted().map { b-> b to a.count { it == b } } }.toMap()
val keys = items.keys.toList()
val count = items.keys.map { 0 }.toTypedArray()
val mod = 1000000000 + 7
for(i in keys.indices) {
if(i == 0) {
count[0] = items[keys[0]]!!
} else {
count[i] = count[i-1] + items[keys[i]]!!
}
}
var ans = 0L
for(i in (0..keys.lastIndex - 2)) {
for(j in (i+1..keys.lastIndex - 1)) {
val remain = (count.last() - count[j]).toLong()
var ptn = items[keys[i]]!!.toLong() * items[keys[j]]!!.toLong()
ptn = ptn % mod
ptn *= remain
ptn = ptn % mod
ans += ptn
ans = ans % mod
}
}
println(ans)
}
バカらっく