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 a new issue