lluque

AoC day 15

Dec 18th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.53 KB | None | 0 0
  1. object day15 {
  2.  
  3.     case class Disk(val num: Int, val size: Int, val startPos: Int) {
  4.       def passableAt(t: Int): Boolean = (startPos + t + num) % size == 0
  5.     }
  6.  
  7.     def findSlot(t: Int, disks: List[Disk]): Int =
  8.       if (disks.forall(_.passableAt(t))) t else findSlot(t + 1, disks)
  9.    
  10.     def run = {
  11.       val disks = List(Disk(1, 7, 0), Disk(2, 13, 0), Disk(3, 3, 2),
  12.         Disk(4, 5, 2),Disk(5, 17, 0), Disk(6, 19, 7))
  13.       println(findSlot(0, disks))
  14.       println(findSlot(0, disks :+ Disk(7, 11, 0)))
  15.     }
  16.  
  17. }
Advertisement
Add Comment
Please, Sign In to add comment