Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions 2017/src/main/scala/aoc2017/Day20.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package aoc2017

import nmcb.*
import nmcb.predef.*

object Day20 extends AoC:

Expand All @@ -19,11 +20,7 @@ object Day20 extends AoC:
position = position + velocity + acceleration,
velocity = velocity + acceleration
)

extension [A](t: (A,Int))
def element: A = t._1
def index: Int = t._2


extension (particles: Vector[Particle])

def tick: Vector[Particle] =
Expand Down
4 changes: 2 additions & 2 deletions 2025/src/main/scala/aoc2025/Day09.scala
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ object Day09 extends AoC:

type Position = (x: Long, y: Long)

extension (pair: (Position,Position))
extension (pair: (Position, Position))

def area: Long =
val dx = (pair.left.x - pair.right.x).abs
Expand Down Expand Up @@ -37,7 +37,7 @@ object Day09 extends AoC:

val perimeter: Set[Position] = perimeter(corners)

given order: Ordering[(Position,Position)] = Ordering.by(_.area)
given order: Ordering[(Position, Position)] = Ordering.by(_.area)

override lazy val answer1: Long = corners.pairs(using order).drain.area
override lazy val answer2: Long = corners.pairs(using order.reverse).findFirst((a,b) => isValid(a, b, perimeter)).area
Expand Down
1 change: 0 additions & 1 deletion 2025/src/main/scala/aoc2025/Day10.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package aoc2025
import nmcb.*
import nmcb.predef.*

import scala.CanEqual.derived
import scala.annotation.*

object Day10 extends AoC:
Expand Down
14 changes: 7 additions & 7 deletions nmcb/src/main/scala/nmcb/predef.scala
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,20 @@ object predef:

extension [A](i: Iterable[A])

def slidingPairs: Iterable[(A,A)] =
def slidingPairs: Iterable[(A, A)] =
if i.isEmpty then Nil else i.zip(i.tail)

def allPairs: Seq[(A,A)] =
def allPairs: Seq[(A, A)] =
i.tails.toSeq.tail.flatMap(i.zip)

def pairs[B](): Iterator[(A,A)] =
def pairs[B](): Iterator[(A, A)] =
i.tails
.toVector
.tail
.flatMap(i.zip)
.iterator

def pairs[B](using Ordering[(A,A)]): Iterator[(A,A)] =
def pairs[B](using Ordering[(A,A)]): Iterator[(A, A)] =
i.tails
.toVector
.tail
Expand All @@ -65,11 +65,11 @@ object predef:


extension [A](s: Seq[A])
def toTuple: (A,A) = (s(0), s(1))
def toTuple: (A, A) = (s(0), s(1))


def memo[K,V](initial: (K,V)*): mutable.Map[K,V] =
mutable.Map.empty[K,V] ++ initial
def memo[K,V](initial: (K,V )*): mutable.Map[K, V] =
mutable.Map.empty[K, V] ++ initial


extension [K,V](cache: mutable.Map[K,V])
Expand Down