diff options
Diffstat (limited to '2019')
-rw-r--r-- | 2019/10.hs | 22 |
1 files changed, 3 insertions, 19 deletions
@@ -22,22 +22,11 @@ main = do pts = [(a + i * dx, b + i * dy) | i <- [1..g-1]] in all (not . (arr !)) pts numVisible p = length (filter (\q -> q /= p && sight p q) asts) - -- (cent@(centx, centy), centNumVis) = maximumBy (comparing snd) (zip asts (map numVisible asts)) - (cent@(centx, centy), centNumVis) = ((8, 3), 42) + (cent@(centx, centy), centNumVis) = maximumBy (comparing snd) (zip asts (map numVisible asts)) print centNumVis - print cent - - let -- atan2R' dy dx - -- | dy <= 0, dx < 0 = abs dy % abs dx : -inf -> 0 - -- | dy > 0, dx < 0 = abs dy % abs dx : 0 -> inf - -- | dy > 0, dx == 0 = 0 - -- | dy > 0, dx > 0 = abs dy % abs dx : inf -> 0 - -- | dy <= 0, dx > 0 = abs dy % abs dx : 0 -> -inf - -- | dy < 0, dx == 0 = 1 - -- | otherwise = undefined -- (dx, dy) == (0, 0) - threeLine (cx, cy) (a, b) (x, y) = (a - cx) * (y - cy) == (x - cx) * (b - cy) + let threeLine (cx, cy) (a, b) (x, y) = (a - cx) * (y - cy) == (x - cx) * (b - cy) distsq (a, b) (x, y) = (x - a) * (x - a) + (y - b) * (y - b) otherAsts = sortOn (\(x, y) -> atan2 (fromIntegral (centx - x) :: Double) (fromIntegral (y - centy))) (filter (/= cent) asts) @@ -46,9 +35,4 @@ main = do zapRound l = (map head l, filter (not . null) (map tail l)) zapped = concat (takeWhile (not . null) (map fst (tail (iterate (zapRound . snd) (undefined, groups))))) - mapM_ print groups - print zapped - print (zapped !! 199) - - -- let (n200x, n200y) = otherAsts !! 199 - -- print (n200x * 100 + n200y) + print (let (x, y) = zapped !! 199 in 100 * x + y) |