initPath :: Array (Int, Int) Int -> Array (Int, Int) Int
initPath cost = listArray (bounds cost) $ repeat maxItem
  where
    items = elems cost
    maxItem = length items * maximum items
initPath :: Array (Int, Int) Int -> Array (Int, Int) Int
initPath cost = listArray (bounds cost) $ repeat maxItem
  where
    items = elems cost
    maxItem = length items * maximum items
initPath cost = listArray (bounds cost) $ repeat maxItem
  where
    items = elems cost
    maxItem = length items * maximum items