package net.ipipip0129.kotlin.yukicoder import kotlin.math.pow const val CHAR_TO_INT = 55 fun main(args: Array) { val count = readLine()!!.toInt() // 値読み込み 先頭の0を除去 val lines = (0 until count).map { readLine()!!.replace("^0*".toRegex(), "") }.requireNoNulls() // 各値の進数を格納 val decimalArray = lines.map { charToDecimalInt(it.max()!!) + 1 }.requireNoNulls() // すべてを10進数に変換し最小値を出力 println(lines.mapIndexed( {index, s -> convertDecimal(s, decimalArray[index]) }).min()) } // 文字列をN進数へ変換 fun charToDecimalInt(char: Char): Int { return if (!char.toString().contains(Regex("""\d"""))) { char.toInt() - CHAR_TO_INT } else { char.toString().toInt() } } // 10進数へ変換 fun convertDecimal(num: String, decimal: Int): Long { var output = 0L num.reversed().forEachIndexed { index, c -> output += (decimal).toDouble().pow(index).toLong() * charToDecimalInt(c) } return output }