Guest User

Untitled

a guest
Feb 11th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.46 KB | None | 0 0
  1. object Z {
  2.   def main(args: Array[String]): Unit = {
  3.     print(sum(32, Array(10, 10, 5, 2, 2, 2, 2, 1, 1, 1, 50))) // Some(List(1, 2, 2, 2, 5, 10, 10))
  4.   }
  5.  
  6.   def sum(s: Int, m: Array[Int]) = sum0(s, m.sorted.reverse, 0, List())
  7.  
  8.   def sum0(s: Int, m: Array[Int], mm: Int, sol: List[Int]): Option[List[Int]] = {
  9.     if (s == 0) return Option(sol)
  10.     (mm until m.length).filter(i => s >= m(i)).flatMap(i => sum0(s - m(i), m, i + 1, m(i) :: sol)).headOption
  11.   }
  12. }
Advertisement
Add Comment
Please, Sign In to add comment