def m
(eggs
: Int, floors
: Int
): Int
= { val memo
= Array.
ofDim[Int
](eggs+
1, floors+
1) for (f
<-
2 to floors
) memo
(0)(f
) = inf
memo(e)(0) = 0
memo(e)(1) = 0
}
for (e
<-
1 to eggs
; f
<-
2 to floors
) { memo(e)(f) = inf
memo(e)(f) = min(memo(e)(f), max(memo(e-1)(i+1), memo(e)(f-i-1)))
}
memo(e)(f) += 1
println(s"$e $f ${memo(e)(f)}")
}
memo(eggs)(floors)
}
print(m(2, 100))
}
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHAgewogICAgdmFsIGluZiA9IDFlNy50b0ludAoJCglkZWYgbShlZ2dzOiBJbnQsIGZsb29yczogSW50KTogSW50ID0gewoJCXZhbCBtZW1vID0gQXJyYXkub2ZEaW1bSW50XShlZ2dzKzEsIGZsb29ycysxKQoJCWZvciAoZiA8LSAyIHRvIGZsb29ycykgbWVtbygwKShmKSA9IGluZgoJCWZvciAoZSA8LSAwIHRvIGVnZ3MpIHsKCQkJbWVtbyhlKSgwKSA9IDAKCQkJbWVtbyhlKSgxKSA9IDAKCQl9CgkJZm9yIChlIDwtIDEgdG8gZWdnczsgZiA8LSAyIHRvIGZsb29ycykgewoJCQltZW1vKGUpKGYpID0gaW5mCgkJCWZvciAoaSA8LSAwIHVudGlsIGYpIHsKCQkJCWltcG9ydCBzY2FsYS5tYXRoLl8KCQkJCW1lbW8oZSkoZikgPSBtaW4obWVtbyhlKShmKSwgbWF4KG1lbW8oZS0xKShpKzEpLCBtZW1vKGUpKGYtaS0xKSkpCgkJCX0KCQkJbWVtbyhlKShmKSArPSAxCgkJCXByaW50bG4ocyIkZSAkZiAke21lbW8oZSkoZil9IikKCQl9CgkKCQltZW1vKGVnZ3MpKGZsb29ycykKCX0KCQoJcHJpbnQobSgyLCAxMDApKQp9Cgo=