brute force ftw
This commit is contained in:
parent
170d7b09b8
commit
a5b64d7a31
114
day8.hs
Normal file
114
day8.hs
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
{-# LANGUAGE FlexibleContexts #-}
|
||||||
|
|
||||||
|
import qualified Data.Vector as V
|
||||||
|
import Text.Parsec
|
||||||
|
|
||||||
|
data Op = Acc Int
|
||||||
|
| Jmp Int
|
||||||
|
| Nop Int
|
||||||
|
deriving Show
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = do
|
||||||
|
raw <- readFile "day8.txt"
|
||||||
|
let ops = V.fromList $ zip (repeat False)
|
||||||
|
$ validate $ map (parse lineP []) $ lines raw
|
||||||
|
ansA = solveA ops
|
||||||
|
ansB = solveB ops
|
||||||
|
in do
|
||||||
|
putStrLn $ "day7a: " ++ (show ansA)
|
||||||
|
putStrLn $ "day7b: " ++ (show ansB)
|
||||||
|
|
||||||
|
solveA :: V.Vector (Bool, Op) -> Int
|
||||||
|
solveA ops = runMachineA ops 0 0
|
||||||
|
|
||||||
|
solveB :: V.Vector (Bool, Op) -> Int
|
||||||
|
solveB ops = case testSwaps ops 0 of
|
||||||
|
Nothing -> error "unsolvable?"
|
||||||
|
Just x -> x
|
||||||
|
|
||||||
|
runMachineA :: V.Vector (Bool, Op) -> Int -> Int -> Int
|
||||||
|
runMachineA ops pc ac = do
|
||||||
|
let (check,op) = ops V.! pc
|
||||||
|
in case check of
|
||||||
|
True -> ac
|
||||||
|
_ -> do
|
||||||
|
let nac = case op of
|
||||||
|
(Acc x) -> ac + x
|
||||||
|
_ -> ac
|
||||||
|
npc = case op of
|
||||||
|
(Jmp y) -> pc + y
|
||||||
|
_ -> succ pc
|
||||||
|
nops = ops V.// [(pc, (True, op))]
|
||||||
|
in runMachineA nops npc nac
|
||||||
|
|
||||||
|
swapOp :: V.Vector (Bool, Op) -> Int -> Maybe (V.Vector (Bool, Op))
|
||||||
|
swapOp ops ind =
|
||||||
|
case op of
|
||||||
|
(Acc _) -> Nothing
|
||||||
|
(Nop x) -> Just $ ops V.// [(ind, (check, Jmp x))]
|
||||||
|
(Jmp x) -> Just $ ops V.// [(ind, (check, Nop x))]
|
||||||
|
where
|
||||||
|
(check,op) = ops V.! ind
|
||||||
|
|
||||||
|
testSwaps :: V.Vector (Bool, Op) -> Int -> Maybe Int
|
||||||
|
testSwaps ops ind
|
||||||
|
| ind >= V.length ops = Nothing
|
||||||
|
| otherwise =
|
||||||
|
case res of
|
||||||
|
Nothing -> testSwaps ops $ succ ind
|
||||||
|
(Just nops) -> case (runMachineB nops 0 0) of
|
||||||
|
Nothing -> testSwaps ops $ succ ind
|
||||||
|
x -> x
|
||||||
|
|
||||||
|
where
|
||||||
|
res = swapOp ops ind
|
||||||
|
|
||||||
|
runMachineB :: V.Vector (Bool, Op) -> Int -> Int -> Maybe Int
|
||||||
|
runMachineB ops pc ac =
|
||||||
|
if pc == V.length ops
|
||||||
|
then Just ac
|
||||||
|
else do
|
||||||
|
let (check,op) = ops V.! pc
|
||||||
|
in case check of
|
||||||
|
True -> Nothing
|
||||||
|
_ -> do
|
||||||
|
let nac = case op of
|
||||||
|
(Acc x) -> ac + x
|
||||||
|
_ -> ac
|
||||||
|
npc = case op of
|
||||||
|
(Jmp y) -> pc + y
|
||||||
|
_ -> succ pc
|
||||||
|
nops = ops V.// [(pc, (True, op))]
|
||||||
|
in runMachineB nops npc nac
|
||||||
|
|
||||||
|
validate :: [Either ParseError Op] -> [Op]
|
||||||
|
validate [] = []
|
||||||
|
validate ((Left _):_) = error "invalid input"
|
||||||
|
validate ((Right b):bs) = b:(validate bs)
|
||||||
|
|
||||||
|
lineP :: Parsec String () Op
|
||||||
|
lineP = do
|
||||||
|
o <- opP
|
||||||
|
whitespaces
|
||||||
|
i <- intP
|
||||||
|
whitespaces
|
||||||
|
eof
|
||||||
|
return $ o i
|
||||||
|
|
||||||
|
intP :: Parsec String () Int
|
||||||
|
intP = do
|
||||||
|
s <- oneOf ['+','-']
|
||||||
|
v <- many1 digit
|
||||||
|
return $ (if s == '-' then -1 else 1) * (read v)
|
||||||
|
|
||||||
|
opP :: Parsec String () (Int -> Op)
|
||||||
|
opP = do
|
||||||
|
o <- (string "acc") <|> (string "jmp") <|> (string "nop")
|
||||||
|
case o of
|
||||||
|
"acc" -> return Acc
|
||||||
|
"jmp" -> return Jmp
|
||||||
|
_ -> return Nop
|
||||||
|
|
||||||
|
whitespaces :: Parsec String () String
|
||||||
|
whitespaces = many $ char ' '
|
626
day8.txt
Normal file
626
day8.txt
Normal file
@ -0,0 +1,626 @@
|
|||||||
|
acc +48
|
||||||
|
nop +308
|
||||||
|
acc +33
|
||||||
|
acc +48
|
||||||
|
jmp +379
|
||||||
|
acc +27
|
||||||
|
acc +23
|
||||||
|
acc +29
|
||||||
|
acc +3
|
||||||
|
jmp +326
|
||||||
|
acc -12
|
||||||
|
nop +248
|
||||||
|
nop +146
|
||||||
|
jmp +293
|
||||||
|
acc +8
|
||||||
|
acc -16
|
||||||
|
acc +18
|
||||||
|
jmp +255
|
||||||
|
jmp +390
|
||||||
|
jmp +442
|
||||||
|
acc +38
|
||||||
|
jmp +451
|
||||||
|
jmp +499
|
||||||
|
acc +41
|
||||||
|
acc +44
|
||||||
|
nop +298
|
||||||
|
acc +31
|
||||||
|
jmp +337
|
||||||
|
acc -3
|
||||||
|
acc +34
|
||||||
|
nop +266
|
||||||
|
acc -19
|
||||||
|
jmp +281
|
||||||
|
jmp +232
|
||||||
|
acc -9
|
||||||
|
acc +25
|
||||||
|
acc -8
|
||||||
|
nop +228
|
||||||
|
jmp +79
|
||||||
|
jmp +58
|
||||||
|
acc +38
|
||||||
|
nop +318
|
||||||
|
jmp +17
|
||||||
|
acc +44
|
||||||
|
jmp +298
|
||||||
|
acc -4
|
||||||
|
jmp +196
|
||||||
|
jmp +249
|
||||||
|
acc -9
|
||||||
|
acc -3
|
||||||
|
acc +17
|
||||||
|
jmp +556
|
||||||
|
jmp +1
|
||||||
|
acc -15
|
||||||
|
jmp +166
|
||||||
|
acc +23
|
||||||
|
acc +10
|
||||||
|
acc +39
|
||||||
|
jmp +475
|
||||||
|
acc +28
|
||||||
|
jmp +41
|
||||||
|
jmp +322
|
||||||
|
acc +48
|
||||||
|
acc -11
|
||||||
|
acc -13
|
||||||
|
acc +12
|
||||||
|
jmp +92
|
||||||
|
jmp +1
|
||||||
|
acc +9
|
||||||
|
jmp -26
|
||||||
|
acc +4
|
||||||
|
acc -8
|
||||||
|
nop +484
|
||||||
|
acc -14
|
||||||
|
jmp +526
|
||||||
|
acc -13
|
||||||
|
acc -2
|
||||||
|
acc -13
|
||||||
|
jmp +419
|
||||||
|
acc +22
|
||||||
|
acc -17
|
||||||
|
jmp +1
|
||||||
|
jmp +151
|
||||||
|
acc +3
|
||||||
|
acc +2
|
||||||
|
acc -13
|
||||||
|
acc -11
|
||||||
|
jmp +352
|
||||||
|
acc +24
|
||||||
|
jmp -27
|
||||||
|
nop +206
|
||||||
|
acc +22
|
||||||
|
nop +225
|
||||||
|
jmp +360
|
||||||
|
acc +48
|
||||||
|
jmp +105
|
||||||
|
jmp +80
|
||||||
|
acc -16
|
||||||
|
jmp +89
|
||||||
|
acc +0
|
||||||
|
jmp +339
|
||||||
|
acc +37
|
||||||
|
acc +41
|
||||||
|
nop +156
|
||||||
|
jmp +452
|
||||||
|
jmp +208
|
||||||
|
nop +60
|
||||||
|
jmp +155
|
||||||
|
acc -16
|
||||||
|
jmp +274
|
||||||
|
nop -77
|
||||||
|
acc -16
|
||||||
|
acc +21
|
||||||
|
jmp +508
|
||||||
|
acc -7
|
||||||
|
acc -1
|
||||||
|
jmp -83
|
||||||
|
acc -11
|
||||||
|
jmp +28
|
||||||
|
acc +3
|
||||||
|
acc +32
|
||||||
|
acc -18
|
||||||
|
jmp -89
|
||||||
|
acc +4
|
||||||
|
acc -14
|
||||||
|
acc -1
|
||||||
|
acc +33
|
||||||
|
jmp -75
|
||||||
|
nop +185
|
||||||
|
acc +8
|
||||||
|
acc +22
|
||||||
|
acc +26
|
||||||
|
jmp +164
|
||||||
|
acc -19
|
||||||
|
jmp +260
|
||||||
|
jmp +174
|
||||||
|
acc +2
|
||||||
|
acc +34
|
||||||
|
jmp -120
|
||||||
|
acc -15
|
||||||
|
acc +48
|
||||||
|
jmp +165
|
||||||
|
acc +5
|
||||||
|
nop +240
|
||||||
|
jmp -121
|
||||||
|
jmp +114
|
||||||
|
jmp -36
|
||||||
|
nop +432
|
||||||
|
jmp +1
|
||||||
|
acc -18
|
||||||
|
jmp +429
|
||||||
|
acc +44
|
||||||
|
nop +110
|
||||||
|
jmp +198
|
||||||
|
acc -18
|
||||||
|
acc +32
|
||||||
|
acc +41
|
||||||
|
jmp +102
|
||||||
|
nop +177
|
||||||
|
acc +35
|
||||||
|
acc +24
|
||||||
|
acc +46
|
||||||
|
jmp +121
|
||||||
|
acc +20
|
||||||
|
jmp +1
|
||||||
|
jmp +407
|
||||||
|
jmp +1
|
||||||
|
acc +35
|
||||||
|
acc +46
|
||||||
|
nop -18
|
||||||
|
jmp +6
|
||||||
|
jmp +422
|
||||||
|
acc -19
|
||||||
|
jmp -85
|
||||||
|
acc +33
|
||||||
|
jmp -116
|
||||||
|
nop +79
|
||||||
|
jmp +284
|
||||||
|
acc +3
|
||||||
|
acc +49
|
||||||
|
nop +317
|
||||||
|
jmp +6
|
||||||
|
acc +6
|
||||||
|
jmp +295
|
||||||
|
nop -141
|
||||||
|
acc -4
|
||||||
|
jmp -44
|
||||||
|
nop +155
|
||||||
|
acc +48
|
||||||
|
acc -17
|
||||||
|
jmp +188
|
||||||
|
acc +22
|
||||||
|
jmp +286
|
||||||
|
nop +103
|
||||||
|
acc -2
|
||||||
|
acc +45
|
||||||
|
jmp +20
|
||||||
|
acc +21
|
||||||
|
acc +37
|
||||||
|
jmp +235
|
||||||
|
jmp +42
|
||||||
|
acc -11
|
||||||
|
nop -15
|
||||||
|
acc -5
|
||||||
|
jmp +235
|
||||||
|
jmp +178
|
||||||
|
acc +12
|
||||||
|
acc -15
|
||||||
|
jmp +25
|
||||||
|
acc +9
|
||||||
|
acc +11
|
||||||
|
nop +389
|
||||||
|
acc +50
|
||||||
|
jmp +146
|
||||||
|
acc +26
|
||||||
|
jmp +144
|
||||||
|
acc -14
|
||||||
|
jmp +304
|
||||||
|
nop +254
|
||||||
|
jmp +337
|
||||||
|
jmp +17
|
||||||
|
jmp +1
|
||||||
|
acc +6
|
||||||
|
acc -4
|
||||||
|
acc +42
|
||||||
|
jmp +117
|
||||||
|
acc +25
|
||||||
|
acc +50
|
||||||
|
acc +45
|
||||||
|
jmp -112
|
||||||
|
acc +14
|
||||||
|
acc +27
|
||||||
|
jmp +347
|
||||||
|
nop +15
|
||||||
|
jmp +14
|
||||||
|
acc +29
|
||||||
|
jmp +236
|
||||||
|
jmp -71
|
||||||
|
acc -11
|
||||||
|
acc +21
|
||||||
|
nop +32
|
||||||
|
jmp -162
|
||||||
|
acc -15
|
||||||
|
jmp +322
|
||||||
|
acc -4
|
||||||
|
acc +16
|
||||||
|
jmp +1
|
||||||
|
jmp +100
|
||||||
|
jmp +1
|
||||||
|
jmp -77
|
||||||
|
acc +21
|
||||||
|
nop -199
|
||||||
|
acc +49
|
||||||
|
acc -1
|
||||||
|
jmp -231
|
||||||
|
jmp +230
|
||||||
|
acc -19
|
||||||
|
jmp +1
|
||||||
|
jmp -49
|
||||||
|
jmp -11
|
||||||
|
acc +6
|
||||||
|
jmp -110
|
||||||
|
jmp +331
|
||||||
|
acc +44
|
||||||
|
jmp +292
|
||||||
|
acc -7
|
||||||
|
acc -18
|
||||||
|
acc +50
|
||||||
|
jmp +221
|
||||||
|
acc +33
|
||||||
|
acc +7
|
||||||
|
jmp -45
|
||||||
|
jmp +342
|
||||||
|
acc -19
|
||||||
|
acc +36
|
||||||
|
acc +15
|
||||||
|
jmp -229
|
||||||
|
nop -5
|
||||||
|
jmp +57
|
||||||
|
acc +26
|
||||||
|
acc +43
|
||||||
|
nop -175
|
||||||
|
jmp +82
|
||||||
|
acc +45
|
||||||
|
jmp -161
|
||||||
|
acc -16
|
||||||
|
acc +35
|
||||||
|
acc +46
|
||||||
|
acc +43
|
||||||
|
jmp +1
|
||||||
|
nop +195
|
||||||
|
acc +39
|
||||||
|
acc +27
|
||||||
|
acc +32
|
||||||
|
jmp +227
|
||||||
|
jmp -272
|
||||||
|
nop +201
|
||||||
|
acc +6
|
||||||
|
acc +13
|
||||||
|
acc +12
|
||||||
|
jmp -177
|
||||||
|
acc -9
|
||||||
|
acc +46
|
||||||
|
nop +199
|
||||||
|
acc -1
|
||||||
|
jmp +1
|
||||||
|
jmp +3
|
||||||
|
acc +42
|
||||||
|
jmp +75
|
||||||
|
jmp +305
|
||||||
|
acc +49
|
||||||
|
acc -16
|
||||||
|
jmp -92
|
||||||
|
acc +3
|
||||||
|
nop +279
|
||||||
|
jmp +54
|
||||||
|
jmp +31
|
||||||
|
acc +50
|
||||||
|
jmp -125
|
||||||
|
acc +21
|
||||||
|
nop -178
|
||||||
|
acc +40
|
||||||
|
jmp +193
|
||||||
|
acc +39
|
||||||
|
acc -5
|
||||||
|
jmp +261
|
||||||
|
nop -3
|
||||||
|
acc -13
|
||||||
|
jmp -310
|
||||||
|
acc +6
|
||||||
|
acc -17
|
||||||
|
acc +12
|
||||||
|
acc +38
|
||||||
|
jmp +267
|
||||||
|
jmp -311
|
||||||
|
acc -2
|
||||||
|
jmp -7
|
||||||
|
nop +77
|
||||||
|
acc -2
|
||||||
|
acc +39
|
||||||
|
acc -16
|
||||||
|
jmp +10
|
||||||
|
nop +59
|
||||||
|
jmp -296
|
||||||
|
acc -4
|
||||||
|
acc +41
|
||||||
|
jmp -249
|
||||||
|
acc +43
|
||||||
|
nop +35
|
||||||
|
jmp +95
|
||||||
|
jmp +171
|
||||||
|
acc +10
|
||||||
|
nop +169
|
||||||
|
acc -17
|
||||||
|
jmp +47
|
||||||
|
acc +49
|
||||||
|
acc +38
|
||||||
|
nop +199
|
||||||
|
jmp +249
|
||||||
|
jmp -53
|
||||||
|
nop -194
|
||||||
|
acc +19
|
||||||
|
acc +18
|
||||||
|
jmp -16
|
||||||
|
acc +33
|
||||||
|
jmp +194
|
||||||
|
nop -194
|
||||||
|
acc +49
|
||||||
|
jmp +85
|
||||||
|
acc +50
|
||||||
|
nop -318
|
||||||
|
acc -7
|
||||||
|
jmp -49
|
||||||
|
acc -6
|
||||||
|
acc +48
|
||||||
|
acc -13
|
||||||
|
acc -14
|
||||||
|
jmp +67
|
||||||
|
acc +12
|
||||||
|
acc +19
|
||||||
|
acc +3
|
||||||
|
jmp -371
|
||||||
|
jmp -149
|
||||||
|
acc +49
|
||||||
|
nop -202
|
||||||
|
jmp -315
|
||||||
|
acc -6
|
||||||
|
jmp -171
|
||||||
|
acc -7
|
||||||
|
jmp +113
|
||||||
|
acc +34
|
||||||
|
acc +36
|
||||||
|
acc +17
|
||||||
|
jmp -97
|
||||||
|
acc +3
|
||||||
|
jmp -244
|
||||||
|
acc +25
|
||||||
|
acc +30
|
||||||
|
acc +25
|
||||||
|
acc -19
|
||||||
|
jmp +44
|
||||||
|
nop +84
|
||||||
|
jmp +124
|
||||||
|
nop +17
|
||||||
|
acc -11
|
||||||
|
acc -8
|
||||||
|
acc +4
|
||||||
|
jmp +193
|
||||||
|
jmp -388
|
||||||
|
acc +36
|
||||||
|
acc +17
|
||||||
|
jmp +1
|
||||||
|
acc -5
|
||||||
|
jmp +166
|
||||||
|
acc +39
|
||||||
|
acc -10
|
||||||
|
jmp -280
|
||||||
|
acc +15
|
||||||
|
jmp +1
|
||||||
|
jmp -396
|
||||||
|
jmp +113
|
||||||
|
acc +37
|
||||||
|
acc +13
|
||||||
|
jmp -35
|
||||||
|
nop +109
|
||||||
|
acc +8
|
||||||
|
acc +6
|
||||||
|
acc +19
|
||||||
|
jmp +39
|
||||||
|
jmp +1
|
||||||
|
jmp +1
|
||||||
|
acc +39
|
||||||
|
acc -14
|
||||||
|
jmp -291
|
||||||
|
acc +39
|
||||||
|
acc +31
|
||||||
|
jmp -231
|
||||||
|
acc +41
|
||||||
|
jmp -55
|
||||||
|
nop -167
|
||||||
|
jmp +105
|
||||||
|
acc -8
|
||||||
|
acc +34
|
||||||
|
jmp -114
|
||||||
|
nop +58
|
||||||
|
jmp +1
|
||||||
|
nop -270
|
||||||
|
acc +31
|
||||||
|
jmp -135
|
||||||
|
acc +8
|
||||||
|
acc +33
|
||||||
|
jmp +1
|
||||||
|
jmp -64
|
||||||
|
acc +24
|
||||||
|
acc +16
|
||||||
|
jmp +117
|
||||||
|
acc +35
|
||||||
|
acc -11
|
||||||
|
nop +44
|
||||||
|
acc +18
|
||||||
|
jmp +1
|
||||||
|
jmp +88
|
||||||
|
acc +29
|
||||||
|
nop +34
|
||||||
|
jmp +1
|
||||||
|
nop -118
|
||||||
|
jmp -404
|
||||||
|
jmp -144
|
||||||
|
acc -12
|
||||||
|
nop -372
|
||||||
|
acc -14
|
||||||
|
jmp -209
|
||||||
|
acc +12
|
||||||
|
jmp +1
|
||||||
|
acc -1
|
||||||
|
jmp +132
|
||||||
|
nop -93
|
||||||
|
jmp -130
|
||||||
|
acc +23
|
||||||
|
acc +30
|
||||||
|
acc +3
|
||||||
|
jmp -209
|
||||||
|
nop -381
|
||||||
|
acc -19
|
||||||
|
jmp +23
|
||||||
|
nop +87
|
||||||
|
jmp -277
|
||||||
|
acc +39
|
||||||
|
jmp -391
|
||||||
|
acc +14
|
||||||
|
acc +18
|
||||||
|
acc +24
|
||||||
|
nop -459
|
||||||
|
jmp -267
|
||||||
|
acc +35
|
||||||
|
nop +84
|
||||||
|
jmp -231
|
||||||
|
acc +5
|
||||||
|
acc +0
|
||||||
|
acc +45
|
||||||
|
jmp -210
|
||||||
|
jmp -211
|
||||||
|
acc +7
|
||||||
|
acc +8
|
||||||
|
nop -249
|
||||||
|
jmp -8
|
||||||
|
jmp -105
|
||||||
|
nop -455
|
||||||
|
acc -19
|
||||||
|
acc +36
|
||||||
|
jmp -368
|
||||||
|
acc +33
|
||||||
|
acc +10
|
||||||
|
acc +9
|
||||||
|
jmp -259
|
||||||
|
nop +41
|
||||||
|
acc -14
|
||||||
|
acc +2
|
||||||
|
jmp -336
|
||||||
|
acc +46
|
||||||
|
jmp -261
|
||||||
|
nop -284
|
||||||
|
acc +21
|
||||||
|
nop -154
|
||||||
|
jmp -485
|
||||||
|
jmp -505
|
||||||
|
acc +32
|
||||||
|
nop -327
|
||||||
|
acc +1
|
||||||
|
nop +43
|
||||||
|
jmp -23
|
||||||
|
acc -7
|
||||||
|
jmp -88
|
||||||
|
acc +10
|
||||||
|
jmp -440
|
||||||
|
acc +12
|
||||||
|
jmp -430
|
||||||
|
jmp +1
|
||||||
|
acc +46
|
||||||
|
nop -105
|
||||||
|
jmp -87
|
||||||
|
acc +49
|
||||||
|
acc -10
|
||||||
|
acc -6
|
||||||
|
jmp -411
|
||||||
|
jmp -268
|
||||||
|
acc +35
|
||||||
|
acc +15
|
||||||
|
jmp +45
|
||||||
|
acc -14
|
||||||
|
acc +0
|
||||||
|
jmp -234
|
||||||
|
nop -67
|
||||||
|
acc +32
|
||||||
|
acc +1
|
||||||
|
jmp -476
|
||||||
|
jmp -297
|
||||||
|
nop -274
|
||||||
|
jmp -435
|
||||||
|
acc +36
|
||||||
|
acc -2
|
||||||
|
acc +33
|
||||||
|
acc +9
|
||||||
|
jmp -26
|
||||||
|
jmp +50
|
||||||
|
acc +23
|
||||||
|
jmp -172
|
||||||
|
jmp +1
|
||||||
|
acc +34
|
||||||
|
acc +32
|
||||||
|
acc -4
|
||||||
|
jmp -312
|
||||||
|
acc -11
|
||||||
|
acc +26
|
||||||
|
jmp -150
|
||||||
|
acc +41
|
||||||
|
nop -79
|
||||||
|
acc +25
|
||||||
|
jmp -76
|
||||||
|
acc -2
|
||||||
|
acc +29
|
||||||
|
acc +12
|
||||||
|
jmp -549
|
||||||
|
nop -357
|
||||||
|
nop -438
|
||||||
|
jmp -320
|
||||||
|
acc +7
|
||||||
|
acc -6
|
||||||
|
jmp -149
|
||||||
|
nop -74
|
||||||
|
acc +7
|
||||||
|
acc +45
|
||||||
|
jmp -383
|
||||||
|
acc -8
|
||||||
|
acc +5
|
||||||
|
acc +12
|
||||||
|
jmp -463
|
||||||
|
acc -17
|
||||||
|
acc +5
|
||||||
|
jmp -34
|
||||||
|
jmp +1
|
||||||
|
acc +18
|
||||||
|
jmp -523
|
||||||
|
acc +38
|
||||||
|
acc +35
|
||||||
|
nop -222
|
||||||
|
jmp -424
|
||||||
|
nop -365
|
||||||
|
jmp -188
|
||||||
|
acc +0
|
||||||
|
acc +7
|
||||||
|
nop -167
|
||||||
|
acc +27
|
||||||
|
jmp -351
|
||||||
|
acc +26
|
||||||
|
jmp -201
|
||||||
|
nop -208
|
||||||
|
nop -466
|
||||||
|
acc +50
|
||||||
|
nop -531
|
||||||
|
jmp -273
|
||||||
|
acc +21
|
||||||
|
acc +25
|
||||||
|
nop -397
|
||||||
|
acc +29
|
||||||
|
jmp +1
|
43
flake.lock
Normal file
43
flake.lock
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1605370193,
|
||||||
|
"narHash": "sha256-YyMTf3URDL/otKdKgtoMChu4vfVL3vCMkRqpGifhUn0=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "5021eac20303a61fafe17224c087f5519baed54d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1607348767,
|
||||||
|
"narHash": "sha256-3ci3OKIQnYHDoeyCWJbV/H3sScLJewhWeW5qjLHENLQ=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "3a02dc9edb283beb9580c9329f242ad705a721c3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-20.09",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
17
flake.nix
Normal file
17
flake.nix
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
description = "ghc with plugins for aoc";
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-20.09";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
outputs = { self, nixpkgs, flake-utils, ... }:
|
||||||
|
flake-utils.lib.eachDefaultSystem
|
||||||
|
(system:
|
||||||
|
let pkgs = nixpkgs.legacyPackages.${system}; in
|
||||||
|
{
|
||||||
|
defaultPackage = pkgs.haskellPackages.ghcWithPackages
|
||||||
|
(hpkgs: with hpkgs; [
|
||||||
|
vector
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user