19 lines
623 B
Scala
19 lines
623 B
Scala
import java.util.Scanner
|
|
|
|
object Subleq extends App {
|
|
val mem = Array(15, 17, -1, 17, -1, -1, 16, 1, -1, 16, 3, -1, 15, 15, 0, 0, -1,
|
|
'H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!', 10, 0)
|
|
val input = new Scanner(System.in)
|
|
var instructionPointer = 0
|
|
|
|
do {
|
|
val (a, b) = (mem(instructionPointer), mem(instructionPointer + 1))
|
|
if (a == -1) mem(b) = input.nextInt
|
|
else if (b == -1) print(f"${mem(a)}%c")
|
|
else {
|
|
mem(b) -= mem(a)
|
|
if (mem(b) < 1) instructionPointer = mem(instructionPointer + 2) - 3
|
|
}
|
|
instructionPointer += 3
|
|
} while (instructionPointer >= 0)
|
|
}
|