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 until f) {
  14. import scala.math._
  15. memo(e)(f) = min(memo(e)(f), max(memo(e-1)(i+1), memo(e)(f-i-1)))
  16. }
  17. memo(e)(f) += 1
  18. println(s"$e $f ${memo(e)(f)}")
  19. }
  20.  
  21. memo(eggs)(floors)
  22. }
  23.  
  24. println(m(2, 100)) // 14
  25. }
Success #stdin #stdout 0.38s 322496KB
stdin
Standard input is empty
stdout
1 2 1
1 3 2
1 4 3
1 5 4
1 6 5
1 7 6
1 8 7
1 9 8
1 10 9
1 11 10
1 12 11
1 13 12
1 14 13
1 15 14
1 16 15
1 17 16
1 18 17
1 19 18
1 20 19
1 21 20
1 22 21
1 23 22
1 24 23
1 25 24
1 26 25
1 27 26
1 28 27
1 29 28
1 30 29
1 31 30
1 32 31
1 33 32
1 34 33
1 35 34
1 36 35
1 37 36
1 38 37
1 39 38
1 40 39
1 41 40
1 42 41
1 43 42
1 44 43
1 45 44
1 46 45
1 47 46
1 48 47
1 49 48
1 50 49
1 51 50
1 52 51
1 53 52
1 54 53
1 55 54
1 56 55
1 57 56
1 58 57
1 59 58
1 60 59
1 61 60
1 62 61
1 63 62
1 64 63
1 65 64
1 66 65
1 67 66
1 68 67
1 69 68
1 70 69
1 71 70
1 72 71
1 73 72
1 74 73
1 75 74
1 76 75
1 77 76
1 78 77
1 79 78
1 80 79
1 81 80
1 82 81
1 83 82
1 84 83
1 85 84
1 86 85
1 87 86
1 88 87
1 89 88
1 90 89
1 91 90
1 92 91
1 93 92
1 94 93
1 95 94
1 96 95
1 97 96
1 98 97
1 99 98
1 100 99
2 2 1
2 3 2
2 4 2
2 5 3
2 6 3
2 7 3
2 8 4
2 9 4
2 10 4
2 11 4
2 12 5
2 13 5
2 14 5
2 15 5
2 16 5
2 17 6
2 18 6
2 19 6
2 20 6
2 21 6
2 22 6
2 23 7
2 24 7
2 25 7
2 26 7
2 27 7
2 28 7
2 29 7
2 30 8
2 31 8
2 32 8
2 33 8
2 34 8
2 35 8
2 36 8
2 37 8
2 38 9
2 39 9
2 40 9
2 41 9
2 42 9
2 43 9
2 44 9
2 45 9
2 46 9
2 47 10
2 48 10
2 49 10
2 50 10
2 51 10
2 52 10
2 53 10
2 54 10
2 55 10
2 56 10
2 57 11
2 58 11
2 59 11
2 60 11
2 61 11
2 62 11
2 63 11
2 64 11
2 65 11
2 66 11
2 67 11
2 68 12
2 69 12
2 70 12
2 71 12
2 72 12
2 73 12
2 74 12
2 75 12
2 76 12
2 77 12
2 78 12
2 79 12
2 80 13
2 81 13
2 82 13
2 83 13
2 84 13
2 85 13
2 86 13
2 87 13
2 88 13
2 89 13
2 90 13
2 91 13
2 92 13
2 93 14
2 94 14
2 95 14
2 96 14
2 97 14
2 98 14
2 99 14
2 100 14
14