結果
| 問題 |
No.6 使いものにならないハッシュ
|
| コンテスト | |
| ユーザー |
バカらっく
|
| 提出日時 | 2019-08-29 08:47:49 |
| 言語 | Kotlin (2.1.0) |
| 結果 |
AC
|
| 実行時間 | 364 ms / 5,000 ms |
| コード長 | 1,357 bytes |
| コンパイル時間 | 14,379 ms |
| コンパイル使用メモリ | 436,524 KB |
| 実行使用メモリ | 53,540 KB |
| 最終ジャッジ日時 | 2024-09-16 16:51:25 |
| 合計ジャッジ時間 | 26,364 ms |
|
ジャッジサーバーID (参考情報) |
judge6 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 32 |
コンパイルメッセージ
Main.kt:1:10: warning: parameter 'args' is never used
fun main(args: Array<String>){
^
ソースコード
fun main(args: Array<String>){
val k = readLine()!!.toInt()
val n = readLine()!!.toInt()
val primeList = getPrimeList(n).filter { it >= k }
val convList = primeList.map { getConv(it) }
var fromIdx = 0
var maxLength = 0
var maxFromIdx = 0
val dic = mutableMapOf<Int,Boolean>()
for(i in convList.indices) {
if(dic.containsKey(convList[i])) {
for(j in fromIdx..i) {
dic.remove(convList[j])
if(convList[j] == convList[i]) {
fromIdx = j+1
break
}
}
}
dic[convList[i]] = true
val len = i - fromIdx + 1
if(len >= maxLength) {
maxLength = len
maxFromIdx = fromIdx
}
}
println(primeList[maxFromIdx])
}
fun getConv(inNum: Int):Int {
if(inNum < 10) {
return inNum
}
val outNum = getConv((inNum/10) + (inNum%10))
return outNum
}
fun getPrimeList(maxNum:Int):List<Int> {
val flags = arrayOfNulls<Boolean>(maxNum+1)
val list = mutableListOf<Int>()
for (i in 2..maxNum) {
if(flags[i] != null && flags[i]!!) {
continue
}
val maxIndex = maxNum/i
for(j in 1..maxIndex) {
flags[i*j] = true
}
list.add(i)
}
return list.toList()
}
バカらっく