fork download
  1. object Main extends App {
  2. val inf = 1e7.toInt
  3.  
  4. def m(eggs: Int, floors: Int): Int = {
  5. val memo = Array.ofDim[Int](eggs+1, floors+1)
  6. for (f <- 2 to floors) memo(0)(f) = inf
  7. for (e <- 0 to eggs) {
  8. memo(e)(0) = 0
  9. memo(e)(1) = 0
  10. }
  11. for (e <- 1 to eggs; f <- 2 to floors) {
  12. memo(e)(f) = inf
  13. for (i <- 0 to f-1) {
  14. import scala.math.min
  15. memo(e)(f) = min(memo(e)(f), memo(e-1)(i+1))
  16. memo(e)(f) = min(memo(e)(f), memo(e)(f-i-1))
  17. }
  18. print(s"$e $f ${memo(e)(f)}")
  19. }
  20.  
  21. memo(eggs)(floors)
  22. }
  23.  
  24. print(m(2, 100))
  25. }
  26.  
  27.  
Success #stdin #stdout 0.39s 322496KB
stdin
Standard input is empty
stdout
1 2 01 3 01 4 01 5 01 6 01 7 01 8 01 9 01 10 01 11 01 12 01 13 01 14 01 15 01 16 01 17 01 18 01 19 01 20 01 21 01 22 01 23 01 24 01 25 01 26 01 27 01 28 01 29 01 30 01 31 01 32 01 33 01 34 01 35 01 36 01 37 01 38 01 39 01 40 01 41 01 42 01 43 01 44 01 45 01 46 01 47 01 48 01 49 01 50 01 51 01 52 01 53 01 54 01 55 01 56 01 57 01 58 01 59 01 60 01 61 01 62 01 63 01 64 01 65 01 66 01 67 01 68 01 69 01 70 01 71 01 72 01 73 01 74 01 75 01 76 01 77 01 78 01 79 01 80 01 81 01 82 01 83 01 84 01 85 01 86 01 87 01 88 01 89 01 90 01 91 01 92 01 93 01 94 01 95 01 96 01 97 01 98 01 99 01 100 02 2 02 3 02 4 02 5 02 6 02 7 02 8 02 9 02 10 02 11 02 12 02 13 02 14 02 15 02 16 02 17 02 18 02 19 02 20 02 21 02 22 02 23 02 24 02 25 02 26 02 27 02 28 02 29 02 30 02 31 02 32 02 33 02 34 02 35 02 36 02 37 02 38 02 39 02 40 02 41 02 42 02 43 02 44 02 45 02 46 02 47 02 48 02 49 02 50 02 51 02 52 02 53 02 54 02 55 02 56 02 57 02 58 02 59 02 60 02 61 02 62 02 63 02 64 02 65 02 66 02 67 02 68 02 69 02 70 02 71 02 72 02 73 02 74 02 75 02 76 02 77 02 78 02 79 02 80 02 81 02 82 02 83 02 84 02 85 02 86 02 87 02 88 02 89 02 90 02 91 02 92 02 93 02 94 02 95 02 96 02 97 02 98 02 99 02 100 00