Finish 2020 Day 8 (yesterday)
This commit is contained in:
parent
c0cb2b9307
commit
60d4007307
|
@ -0,0 +1,683 @@
|
||||||
|
acc +42
|
||||||
|
acc -12
|
||||||
|
nop +112
|
||||||
|
acc +47
|
||||||
|
jmp +600
|
||||||
|
acc +21
|
||||||
|
jmp +1
|
||||||
|
acc +0
|
||||||
|
acc +50
|
||||||
|
jmp +16
|
||||||
|
acc +10
|
||||||
|
jmp +56
|
||||||
|
acc -5
|
||||||
|
nop +179
|
||||||
|
nop +36
|
||||||
|
jmp +341
|
||||||
|
acc -12
|
||||||
|
nop +580
|
||||||
|
acc -9
|
||||||
|
jmp +112
|
||||||
|
acc +12
|
||||||
|
acc +6
|
||||||
|
acc +40
|
||||||
|
acc +1
|
||||||
|
jmp +237
|
||||||
|
acc +50
|
||||||
|
jmp +61
|
||||||
|
nop +542
|
||||||
|
jmp +644
|
||||||
|
nop +598
|
||||||
|
nop +280
|
||||||
|
acc +34
|
||||||
|
acc +10
|
||||||
|
jmp +486
|
||||||
|
acc +34
|
||||||
|
nop +152
|
||||||
|
acc +35
|
||||||
|
jmp +629
|
||||||
|
acc +37
|
||||||
|
jmp +447
|
||||||
|
acc +50
|
||||||
|
nop +522
|
||||||
|
acc +43
|
||||||
|
jmp +271
|
||||||
|
jmp +451
|
||||||
|
acc +27
|
||||||
|
jmp +1
|
||||||
|
acc +24
|
||||||
|
nop +532
|
||||||
|
jmp +494
|
||||||
|
acc +39
|
||||||
|
acc -10
|
||||||
|
acc +42
|
||||||
|
acc -9
|
||||||
|
jmp +54
|
||||||
|
acc +36
|
||||||
|
jmp +236
|
||||||
|
acc +34
|
||||||
|
acc +47
|
||||||
|
nop +613
|
||||||
|
acc +27
|
||||||
|
jmp +561
|
||||||
|
acc +3
|
||||||
|
acc -5
|
||||||
|
acc +11
|
||||||
|
acc +19
|
||||||
|
jmp +111
|
||||||
|
acc +32
|
||||||
|
nop -52
|
||||||
|
jmp +108
|
||||||
|
acc -16
|
||||||
|
acc +40
|
||||||
|
jmp +207
|
||||||
|
nop -44
|
||||||
|
acc +47
|
||||||
|
jmp +159
|
||||||
|
nop +150
|
||||||
|
acc +43
|
||||||
|
acc +7
|
||||||
|
jmp +200
|
||||||
|
nop +141
|
||||||
|
acc +2
|
||||||
|
jmp +487
|
||||||
|
acc +27
|
||||||
|
nop +122
|
||||||
|
nop +519
|
||||||
|
jmp +22
|
||||||
|
nop +27
|
||||||
|
nop +251
|
||||||
|
acc -2
|
||||||
|
jmp +171
|
||||||
|
acc -11
|
||||||
|
jmp +242
|
||||||
|
acc +14
|
||||||
|
acc -11
|
||||||
|
jmp +540
|
||||||
|
acc -5
|
||||||
|
acc +47
|
||||||
|
acc +14
|
||||||
|
jmp +252
|
||||||
|
acc +34
|
||||||
|
acc +28
|
||||||
|
acc +1
|
||||||
|
jmp +311
|
||||||
|
jmp +1
|
||||||
|
acc +28
|
||||||
|
acc +0
|
||||||
|
jmp +321
|
||||||
|
acc +23
|
||||||
|
acc +8
|
||||||
|
acc +26
|
||||||
|
acc +0
|
||||||
|
jmp +202
|
||||||
|
jmp +541
|
||||||
|
acc +21
|
||||||
|
acc -9
|
||||||
|
acc +7
|
||||||
|
jmp +81
|
||||||
|
acc +5
|
||||||
|
acc +31
|
||||||
|
acc -16
|
||||||
|
jmp +56
|
||||||
|
acc -1
|
||||||
|
acc +21
|
||||||
|
acc +45
|
||||||
|
acc -7
|
||||||
|
jmp +278
|
||||||
|
acc +0
|
||||||
|
acc +2
|
||||||
|
acc -4
|
||||||
|
jmp +514
|
||||||
|
acc -1
|
||||||
|
acc -16
|
||||||
|
acc +32
|
||||||
|
jmp +248
|
||||||
|
acc +25
|
||||||
|
jmp +333
|
||||||
|
acc -18
|
||||||
|
acc +0
|
||||||
|
acc +25
|
||||||
|
acc +43
|
||||||
|
jmp +416
|
||||||
|
acc +18
|
||||||
|
nop -127
|
||||||
|
acc +37
|
||||||
|
acc -4
|
||||||
|
jmp +495
|
||||||
|
nop +16
|
||||||
|
jmp +1
|
||||||
|
jmp +320
|
||||||
|
acc +22
|
||||||
|
jmp +453
|
||||||
|
acc -3
|
||||||
|
nop +519
|
||||||
|
nop +49
|
||||||
|
jmp +32
|
||||||
|
jmp -89
|
||||||
|
acc +11
|
||||||
|
acc +31
|
||||||
|
jmp +454
|
||||||
|
acc +12
|
||||||
|
acc +32
|
||||||
|
jmp +283
|
||||||
|
acc -2
|
||||||
|
nop +411
|
||||||
|
jmp -65
|
||||||
|
acc +0
|
||||||
|
nop +25
|
||||||
|
acc +5
|
||||||
|
acc +0
|
||||||
|
jmp +284
|
||||||
|
acc -15
|
||||||
|
jmp +1
|
||||||
|
jmp +166
|
||||||
|
acc +27
|
||||||
|
acc +50
|
||||||
|
jmp +91
|
||||||
|
jmp -104
|
||||||
|
nop +71
|
||||||
|
jmp +358
|
||||||
|
acc +15
|
||||||
|
acc +1
|
||||||
|
jmp -60
|
||||||
|
acc +20
|
||||||
|
acc +6
|
||||||
|
acc +10
|
||||||
|
jmp +228
|
||||||
|
acc -3
|
||||||
|
jmp +316
|
||||||
|
acc +5
|
||||||
|
acc +11
|
||||||
|
jmp +254
|
||||||
|
acc -3
|
||||||
|
acc +20
|
||||||
|
jmp +194
|
||||||
|
acc +9
|
||||||
|
acc -8
|
||||||
|
jmp +6
|
||||||
|
acc +30
|
||||||
|
jmp +376
|
||||||
|
acc -19
|
||||||
|
acc -8
|
||||||
|
jmp -122
|
||||||
|
jmp +3
|
||||||
|
nop -41
|
||||||
|
jmp -68
|
||||||
|
jmp -119
|
||||||
|
nop +434
|
||||||
|
acc -16
|
||||||
|
nop -199
|
||||||
|
acc +37
|
||||||
|
jmp +68
|
||||||
|
acc +3
|
||||||
|
acc +18
|
||||||
|
acc +38
|
||||||
|
acc -8
|
||||||
|
jmp +327
|
||||||
|
nop +110
|
||||||
|
acc +9
|
||||||
|
acc +31
|
||||||
|
jmp -8
|
||||||
|
jmp +130
|
||||||
|
acc +20
|
||||||
|
acc -1
|
||||||
|
nop +16
|
||||||
|
jmp +24
|
||||||
|
nop +14
|
||||||
|
nop -40
|
||||||
|
nop -57
|
||||||
|
acc +10
|
||||||
|
jmp +239
|
||||||
|
nop +164
|
||||||
|
nop +196
|
||||||
|
jmp -208
|
||||||
|
acc -12
|
||||||
|
jmp +284
|
||||||
|
acc +10
|
||||||
|
acc +27
|
||||||
|
jmp +1
|
||||||
|
jmp -195
|
||||||
|
acc +1
|
||||||
|
acc +10
|
||||||
|
acc +25
|
||||||
|
acc -17
|
||||||
|
jmp +25
|
||||||
|
acc +42
|
||||||
|
acc +1
|
||||||
|
acc -3
|
||||||
|
jmp -148
|
||||||
|
jmp -28
|
||||||
|
acc +34
|
||||||
|
nop -222
|
||||||
|
acc +3
|
||||||
|
acc +15
|
||||||
|
jmp +115
|
||||||
|
acc +26
|
||||||
|
acc +36
|
||||||
|
acc +33
|
||||||
|
jmp -248
|
||||||
|
acc -14
|
||||||
|
jmp -89
|
||||||
|
acc +19
|
||||||
|
acc -14
|
||||||
|
acc +34
|
||||||
|
jmp +380
|
||||||
|
jmp +1
|
||||||
|
jmp -5
|
||||||
|
jmp +187
|
||||||
|
jmp +236
|
||||||
|
acc -4
|
||||||
|
acc +47
|
||||||
|
jmp +2
|
||||||
|
jmp +232
|
||||||
|
jmp +1
|
||||||
|
acc -8
|
||||||
|
jmp +397
|
||||||
|
acc +7
|
||||||
|
acc +2
|
||||||
|
jmp +136
|
||||||
|
jmp +325
|
||||||
|
acc +11
|
||||||
|
acc -17
|
||||||
|
acc -4
|
||||||
|
jmp -43
|
||||||
|
acc +20
|
||||||
|
acc -9
|
||||||
|
jmp +60
|
||||||
|
acc +36
|
||||||
|
acc +49
|
||||||
|
nop +333
|
||||||
|
acc +38
|
||||||
|
jmp -169
|
||||||
|
acc +2
|
||||||
|
acc +8
|
||||||
|
jmp +82
|
||||||
|
acc +6
|
||||||
|
jmp -159
|
||||||
|
acc +25
|
||||||
|
acc +23
|
||||||
|
acc +18
|
||||||
|
acc +41
|
||||||
|
jmp -138
|
||||||
|
jmp -145
|
||||||
|
acc +49
|
||||||
|
acc +37
|
||||||
|
jmp +123
|
||||||
|
acc +2
|
||||||
|
nop +179
|
||||||
|
acc -19
|
||||||
|
jmp -152
|
||||||
|
jmp -294
|
||||||
|
acc +50
|
||||||
|
acc +50
|
||||||
|
jmp -46
|
||||||
|
acc +17
|
||||||
|
jmp -158
|
||||||
|
acc -11
|
||||||
|
acc +5
|
||||||
|
acc -6
|
||||||
|
jmp +278
|
||||||
|
acc +3
|
||||||
|
acc +26
|
||||||
|
acc +27
|
||||||
|
acc +24
|
||||||
|
jmp -69
|
||||||
|
acc +22
|
||||||
|
jmp +204
|
||||||
|
acc +15
|
||||||
|
acc +49
|
||||||
|
acc +1
|
||||||
|
acc +22
|
||||||
|
jmp +149
|
||||||
|
acc +31
|
||||||
|
jmp +131
|
||||||
|
jmp -309
|
||||||
|
acc +40
|
||||||
|
acc +39
|
||||||
|
acc +44
|
||||||
|
jmp -216
|
||||||
|
acc +15
|
||||||
|
acc +17
|
||||||
|
jmp +54
|
||||||
|
nop +157
|
||||||
|
acc +24
|
||||||
|
acc +18
|
||||||
|
jmp -111
|
||||||
|
acc -6
|
||||||
|
jmp +22
|
||||||
|
acc +17
|
||||||
|
acc -3
|
||||||
|
jmp -228
|
||||||
|
acc -2
|
||||||
|
acc +41
|
||||||
|
jmp +235
|
||||||
|
nop +234
|
||||||
|
jmp -82
|
||||||
|
nop -83
|
||||||
|
acc +44
|
||||||
|
acc +39
|
||||||
|
nop +216
|
||||||
|
jmp -180
|
||||||
|
jmp -163
|
||||||
|
acc +13
|
||||||
|
acc +0
|
||||||
|
jmp +1
|
||||||
|
jmp +301
|
||||||
|
acc +14
|
||||||
|
nop -187
|
||||||
|
jmp -181
|
||||||
|
acc +48
|
||||||
|
nop +169
|
||||||
|
acc +27
|
||||||
|
jmp -334
|
||||||
|
nop -226
|
||||||
|
acc +3
|
||||||
|
jmp -61
|
||||||
|
jmp +1
|
||||||
|
acc -15
|
||||||
|
jmp -175
|
||||||
|
acc +9
|
||||||
|
acc +19
|
||||||
|
jmp +223
|
||||||
|
acc +20
|
||||||
|
acc +39
|
||||||
|
acc +50
|
||||||
|
acc +13
|
||||||
|
jmp -119
|
||||||
|
jmp +240
|
||||||
|
acc +50
|
||||||
|
acc +40
|
||||||
|
acc -14
|
||||||
|
jmp +236
|
||||||
|
acc +0
|
||||||
|
acc +0
|
||||||
|
jmp +34
|
||||||
|
acc +20
|
||||||
|
acc -3
|
||||||
|
nop -136
|
||||||
|
acc +4
|
||||||
|
jmp -370
|
||||||
|
acc +38
|
||||||
|
acc +25
|
||||||
|
acc +9
|
||||||
|
jmp -240
|
||||||
|
jmp +1
|
||||||
|
acc -10
|
||||||
|
acc +21
|
||||||
|
acc +46
|
||||||
|
jmp +118
|
||||||
|
acc -8
|
||||||
|
acc +12
|
||||||
|
nop +64
|
||||||
|
acc +0
|
||||||
|
jmp +253
|
||||||
|
acc +32
|
||||||
|
acc -6
|
||||||
|
acc +44
|
||||||
|
jmp +115
|
||||||
|
acc +36
|
||||||
|
acc +23
|
||||||
|
acc +21
|
||||||
|
nop +88
|
||||||
|
jmp -275
|
||||||
|
acc +8
|
||||||
|
jmp -127
|
||||||
|
acc +5
|
||||||
|
acc +42
|
||||||
|
jmp +82
|
||||||
|
acc +41
|
||||||
|
acc +31
|
||||||
|
acc +45
|
||||||
|
acc +20
|
||||||
|
jmp +131
|
||||||
|
acc +21
|
||||||
|
acc +7
|
||||||
|
jmp +97
|
||||||
|
acc +12
|
||||||
|
acc +0
|
||||||
|
nop +61
|
||||||
|
acc +36
|
||||||
|
jmp -106
|
||||||
|
acc +20
|
||||||
|
acc -1
|
||||||
|
acc -14
|
||||||
|
jmp -210
|
||||||
|
acc -12
|
||||||
|
acc -19
|
||||||
|
acc -19
|
||||||
|
jmp -25
|
||||||
|
acc -11
|
||||||
|
nop -247
|
||||||
|
acc +0
|
||||||
|
acc +7
|
||||||
|
jmp -290
|
||||||
|
acc +36
|
||||||
|
acc +43
|
||||||
|
acc +8
|
||||||
|
nop -154
|
||||||
|
jmp -102
|
||||||
|
acc +8
|
||||||
|
acc +31
|
||||||
|
acc +44
|
||||||
|
acc -5
|
||||||
|
jmp -184
|
||||||
|
jmp -252
|
||||||
|
acc +50
|
||||||
|
acc +18
|
||||||
|
acc +5
|
||||||
|
jmp -141
|
||||||
|
jmp -159
|
||||||
|
acc -4
|
||||||
|
acc +8
|
||||||
|
acc +4
|
||||||
|
acc -5
|
||||||
|
jmp +56
|
||||||
|
acc +19
|
||||||
|
acc +46
|
||||||
|
jmp +53
|
||||||
|
acc +45
|
||||||
|
jmp -316
|
||||||
|
acc -5
|
||||||
|
acc -1
|
||||||
|
nop +98
|
||||||
|
jmp +195
|
||||||
|
jmp +1
|
||||||
|
jmp +58
|
||||||
|
acc +15
|
||||||
|
nop -471
|
||||||
|
acc +14
|
||||||
|
jmp +48
|
||||||
|
nop -269
|
||||||
|
nop +8
|
||||||
|
nop -223
|
||||||
|
acc +24
|
||||||
|
jmp -288
|
||||||
|
jmp +85
|
||||||
|
nop -1
|
||||||
|
jmp +1
|
||||||
|
jmp +45
|
||||||
|
acc +48
|
||||||
|
nop -490
|
||||||
|
acc +0
|
||||||
|
jmp +37
|
||||||
|
jmp +132
|
||||||
|
acc +5
|
||||||
|
jmp -256
|
||||||
|
acc +12
|
||||||
|
acc +22
|
||||||
|
jmp -479
|
||||||
|
acc +15
|
||||||
|
nop -56
|
||||||
|
acc -18
|
||||||
|
acc -6
|
||||||
|
jmp -157
|
||||||
|
nop +16
|
||||||
|
acc +5
|
||||||
|
acc +26
|
||||||
|
acc +42
|
||||||
|
jmp -172
|
||||||
|
acc -13
|
||||||
|
acc -2
|
||||||
|
jmp -237
|
||||||
|
acc +9
|
||||||
|
acc -10
|
||||||
|
acc -16
|
||||||
|
jmp +32
|
||||||
|
acc +11
|
||||||
|
acc +3
|
||||||
|
jmp -208
|
||||||
|
jmp -449
|
||||||
|
jmp -383
|
||||||
|
jmp +96
|
||||||
|
acc -9
|
||||||
|
acc -14
|
||||||
|
jmp -30
|
||||||
|
nop -36
|
||||||
|
jmp +21
|
||||||
|
jmp +117
|
||||||
|
jmp -169
|
||||||
|
jmp -387
|
||||||
|
acc -5
|
||||||
|
acc -9
|
||||||
|
jmp -344
|
||||||
|
acc +13
|
||||||
|
acc +4
|
||||||
|
acc +45
|
||||||
|
jmp -219
|
||||||
|
acc +9
|
||||||
|
acc +44
|
||||||
|
acc +31
|
||||||
|
acc +16
|
||||||
|
jmp -71
|
||||||
|
jmp -77
|
||||||
|
acc -1
|
||||||
|
acc +40
|
||||||
|
acc +31
|
||||||
|
jmp -385
|
||||||
|
acc +1
|
||||||
|
jmp -255
|
||||||
|
nop -20
|
||||||
|
acc +0
|
||||||
|
acc +29
|
||||||
|
jmp -180
|
||||||
|
acc +13
|
||||||
|
acc +5
|
||||||
|
nop -292
|
||||||
|
jmp -204
|
||||||
|
acc +30
|
||||||
|
jmp -265
|
||||||
|
acc +19
|
||||||
|
acc +31
|
||||||
|
jmp -457
|
||||||
|
acc +16
|
||||||
|
acc +27
|
||||||
|
jmp +67
|
||||||
|
jmp +88
|
||||||
|
acc +20
|
||||||
|
acc +44
|
||||||
|
acc +27
|
||||||
|
jmp -40
|
||||||
|
acc +26
|
||||||
|
acc +48
|
||||||
|
acc +28
|
||||||
|
acc -12
|
||||||
|
jmp -120
|
||||||
|
acc -9
|
||||||
|
acc +42
|
||||||
|
jmp -543
|
||||||
|
acc +4
|
||||||
|
nop +83
|
||||||
|
acc +41
|
||||||
|
jmp -28
|
||||||
|
acc +40
|
||||||
|
acc -17
|
||||||
|
acc +14
|
||||||
|
acc -6
|
||||||
|
jmp -70
|
||||||
|
nop -294
|
||||||
|
acc -10
|
||||||
|
acc +9
|
||||||
|
acc +7
|
||||||
|
jmp -322
|
||||||
|
jmp +1
|
||||||
|
jmp -46
|
||||||
|
acc +0
|
||||||
|
acc +38
|
||||||
|
acc +6
|
||||||
|
jmp -381
|
||||||
|
acc +49
|
||||||
|
acc -16
|
||||||
|
acc +35
|
||||||
|
acc +45
|
||||||
|
jmp -184
|
||||||
|
acc -6
|
||||||
|
acc -13
|
||||||
|
acc +9
|
||||||
|
jmp -180
|
||||||
|
acc +18
|
||||||
|
acc +49
|
||||||
|
acc -4
|
||||||
|
nop -197
|
||||||
|
jmp -395
|
||||||
|
nop -266
|
||||||
|
jmp -530
|
||||||
|
acc +16
|
||||||
|
acc +9
|
||||||
|
jmp -117
|
||||||
|
acc -4
|
||||||
|
acc -7
|
||||||
|
acc +44
|
||||||
|
acc +35
|
||||||
|
jmp -122
|
||||||
|
acc +31
|
||||||
|
acc -5
|
||||||
|
jmp -503
|
||||||
|
jmp -555
|
||||||
|
acc +19
|
||||||
|
acc +25
|
||||||
|
acc -10
|
||||||
|
acc +50
|
||||||
|
jmp -493
|
||||||
|
jmp -591
|
||||||
|
acc +40
|
||||||
|
jmp -491
|
||||||
|
nop +28
|
||||||
|
nop -48
|
||||||
|
acc +11
|
||||||
|
nop -25
|
||||||
|
jmp -591
|
||||||
|
jmp +1
|
||||||
|
acc -15
|
||||||
|
acc +21
|
||||||
|
acc +46
|
||||||
|
jmp -199
|
||||||
|
jmp +1
|
||||||
|
acc +42
|
||||||
|
acc +10
|
||||||
|
acc -11
|
||||||
|
jmp -213
|
||||||
|
acc -8
|
||||||
|
acc +2
|
||||||
|
acc +36
|
||||||
|
jmp -470
|
||||||
|
acc +37
|
||||||
|
jmp -195
|
||||||
|
jmp -38
|
||||||
|
acc +17
|
||||||
|
jmp -26
|
||||||
|
nop -376
|
||||||
|
acc +27
|
||||||
|
acc +11
|
||||||
|
jmp -185
|
||||||
|
acc +44
|
||||||
|
acc +12
|
||||||
|
acc +9
|
||||||
|
acc +14
|
||||||
|
jmp -626
|
||||||
|
jmp -89
|
||||||
|
acc +45
|
||||||
|
acc +23
|
||||||
|
acc +13
|
||||||
|
acc +19
|
||||||
|
jmp +1
|
|
@ -0,0 +1,92 @@
|
||||||
|
import re
|
||||||
|
# from typing import Tuple
|
||||||
|
|
||||||
|
from aocd import submit
|
||||||
|
|
||||||
|
with open("input.txt") as f:
|
||||||
|
# List of tuples
|
||||||
|
# [('nop', '+0'), ...]
|
||||||
|
bootcode = [ tuple(line.strip().split()) for line in f.readlines() ]
|
||||||
|
|
||||||
|
|
||||||
|
ran_indexes = [] # List of bootcode indexes that have been run
|
||||||
|
|
||||||
|
def runcode(i: int = 0, acc: int = 0, reset: bool = False, flip_index: int = -1) -> tuple[int, bool]:
|
||||||
|
"""Run the boot code, return final acc value, and whether it properly terminates
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
i (int) index
|
||||||
|
acc (int) acc value
|
||||||
|
reset (bool) whether to reset the list of indexes of codes already ran
|
||||||
|
flip_index (int) the index of bootcode to which should flip nop/jmp
|
||||||
|
(set to -1 or under for none). The actual left operand of the
|
||||||
|
bootcode at index flip_index does not need to actually be nop/jmp
|
||||||
|
|
||||||
|
Returns: Tuple of the final acc value, and whether it loops infinitely.
|
||||||
|
"""
|
||||||
|
global ran_indexes
|
||||||
|
# Success means, pointer have reached end of boot code, hence it terminates successfully
|
||||||
|
if i == len(bootcode):
|
||||||
|
return acc, False
|
||||||
|
if reset: ran_indexes = []
|
||||||
|
|
||||||
|
# It's an infinite loop as the current line of boot code has already been run before
|
||||||
|
if i in ran_indexes:
|
||||||
|
return acc, True
|
||||||
|
|
||||||
|
# Begin runnign the current bootcode line
|
||||||
|
ran_indexes.append(i)
|
||||||
|
op, arg = bootcode[i]
|
||||||
|
arg = int(arg)
|
||||||
|
|
||||||
|
# Flip nop/jmp
|
||||||
|
# if (op in (nj:=('nop', 'jmp'))) and i == flip_index:
|
||||||
|
# op = nj[(nj.index(op)+1)%2]
|
||||||
|
op = nj[(nj.index(op)+1)%2] if op in (nj := ('nop', 'jmp')) and i == flip_index else op
|
||||||
|
|
||||||
|
# Finally, parse the code.
|
||||||
|
# Possible op codes:
|
||||||
|
# - acc: add arg to the acc
|
||||||
|
# - jmp: jump arg lines in the boot code to run another instruction
|
||||||
|
# - nop: no operation
|
||||||
|
if op == 'acc': acc += arg
|
||||||
|
elif op == 'jmp': return runcode(i+arg, acc, flip_index=flip_index)
|
||||||
|
# Proceed to next line (for acc and nop)
|
||||||
|
return runcode(i+1, acc, flip_index=flip_index)
|
||||||
|
|
||||||
|
|
||||||
|
# False as ran_indexes was newly initiated - avoid extra assignment of new list object
|
||||||
|
print(a := runcode()[0])
|
||||||
|
submit(a, "a", 8, 2020)
|
||||||
|
|
||||||
|
inf = True; i = 0
|
||||||
|
while inf:
|
||||||
|
if i == len(bootcode):
|
||||||
|
print("FAIL"); break
|
||||||
|
a, inf = runcode(reset=True, flip_index=i)
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
print(a)
|
||||||
|
submit(a, "b", 8, 2020)
|
||||||
|
|
||||||
|
|
||||||
|
# Old impl
|
||||||
|
|
||||||
|
# part 2
|
||||||
|
# one of the nop instructions changed to jmp, or vice verse, so that the program terminates without infinite looping
|
||||||
|
# oldcode = bootcode.copy()
|
||||||
|
# i = -1
|
||||||
|
# while not term:
|
||||||
|
# bootcode[i] = oldcode[i]
|
||||||
|
# i += 1
|
||||||
|
# if i == len(bootcode):
|
||||||
|
# print("FAIL")
|
||||||
|
# break
|
||||||
|
# op, arg = bootcode[i]
|
||||||
|
# if op != 'acc':
|
||||||
|
# bootcode[i] = ('jmp' if op == 'nop' else 'nop', arg)
|
||||||
|
# else:
|
||||||
|
# old = tuple()
|
||||||
|
# continue
|
||||||
|
# ran_indexes = []
|
||||||
|
# a, term = runcode2(0, 0)
|
Loading…
Reference in New Issue