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), memo(e-1)(i+1))
memo(e)(f) = min(memo(e)(f), memo(e)(f-i-1))
}
memo(e)(f) += 1
println(s"$e $f ${memo(e)(f)}")
}
memo(eggs)(floors)
}
print(m(2, 100))
}
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHAgewogICAgdmFsIGluZiA9IDFlNy50b0ludAoJCglkZWYgbShlZ2dzOiBJbnQsIGZsb29yczogSW50KTogSW50ID0gewoJCXZhbCBtZW1vID0gQXJyYXkub2ZEaW1bSW50XShlZ2dzKzEsIGZsb29ycysxKQoJCWZvciAoZiA8LSAyIHRvIGZsb29ycykgbWVtbygwKShmKSA9IGluZgoJCWZvciAoZSA8LSAwIHRvIGVnZ3MpIHsKCQkJbWVtbyhlKSgwKSA9IDAKCQkJbWVtbyhlKSgxKSA9IDAKCQl9CgkJZm9yIChlIDwtIDEgdG8gZWdnczsgZiA8LSAyIHRvIGZsb29ycykgewoJCQltZW1vKGUpKGYpID0gaW5mCgkJCWZvciAoaSA8LSAwIHVudGlsIGYpIHsKCQkJCWltcG9ydCBzY2FsYS5tYXRoLm1pbgoJCQkJbWVtbyhlKShmKSA9IG1pbihtZW1vKGUpKGYpLCBtZW1vKGUtMSkoaSsxKSkKCQkJCW1lbW8oZSkoZikgPSBtaW4obWVtbyhlKShmKSwgbWVtbyhlKShmLWktMSkpCgkJCX0KCQkJbWVtbyhlKShmKSArPSAxCgkJCXByaW50bG4ocyIkZSAkZiAke21lbW8oZSkoZil9IikKCQl9CgkKCQltZW1vKGVnZ3MpKGZsb29ycykKCX0KCQoJcHJpbnQobSgyLCAxMDApKQp9Cgo=