2023-11-17 10:37:33 +01:00
|
|
|
import java.io.File
|
|
|
|
import java.math.BigInteger
|
|
|
|
import java.security.MessageDigest
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Reads lines from the given input txt file.
|
|
|
|
*/
|
|
|
|
fun readInput(name: String) = File("src", "$name.txt")
|
|
|
|
.readLines()
|
|
|
|
|
2023-11-17 11:53:16 +01:00
|
|
|
fun listOfIntegerLists(input: List<String>): ArrayList<List<Int>> {
|
|
|
|
val output = ArrayList<List<Int>>()
|
|
|
|
var currList = ArrayList<Int>()
|
|
|
|
for(i in input)
|
|
|
|
{
|
|
|
|
if(i.isEmpty()){
|
|
|
|
output.add(currList)
|
|
|
|
currList = ArrayList<Int>()
|
|
|
|
} else {
|
|
|
|
currList.add(i.toInt())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(currList.isNotEmpty())
|
|
|
|
{
|
|
|
|
output.add(currList)
|
|
|
|
}
|
|
|
|
return output
|
|
|
|
}
|
|
|
|
|
2023-11-17 10:37:33 +01:00
|
|
|
/**
|
|
|
|
* Converts string to md5 hash.
|
|
|
|
*/
|
|
|
|
fun String.md5() = BigInteger(1, MessageDigest.getInstance("MD5").digest(toByteArray()))
|
|
|
|
.toString(16)
|
|
|
|
.padStart(32, '0')
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The cleaner shorthand for printing output.
|
|
|
|
*/
|
|
|
|
fun Any?.println() = println(this)
|