Solve 2020/08

master
Alfred Melch 4 years ago
parent 9ea9dfecc3
commit 53b89e5034

@ -0,0 +1,9 @@
nop +0
acc +1
jmp +4
acc +3
jmp -3
acc -99
acc +1
jmp -4
acc +6

@ -0,0 +1,638 @@
acc +8
acc +37
jmp +328
jmp +574
nop +321
acc +17
jmp +450
acc +46
acc -15
nop -5
acc +48
jmp +358
jmp +29
acc +23
jmp +11
acc -14
jmp +561
acc +9
acc +17
jmp +136
jmp +394
acc +24
acc +37
acc +19
jmp +241
acc +38
acc +44
acc -5
jmp -8
acc +50
acc -9
acc +5
jmp +424
acc -15
nop +93
acc -1
jmp +414
jmp +548
jmp +454
acc +39
jmp +490
jmp +103
jmp +214
acc +37
jmp +164
acc +34
jmp +362
acc +24
acc +32
jmp +375
jmp +500
acc +23
nop -1
nop +463
jmp +108
acc +14
jmp +106
acc +20
nop +298
nop -39
jmp +321
jmp +1
jmp +515
nop +6
acc +3
acc +18
acc -10
jmp +353
jmp -43
jmp +1
acc +0
acc +7
jmp +507
nop +396
jmp -62
acc +30
acc -13
jmp +466
jmp +137
acc +6
jmp +211
acc +33
acc +4
jmp +269
acc +50
nop -65
acc +18
jmp -54
jmp -68
nop +38
acc -6
jmp +165
nop +342
acc +31
acc +30
nop +465
jmp +273
acc +35
jmp +201
acc +13
acc +18
acc +28
acc +40
jmp +244
nop -63
acc +25
acc +16
jmp -32
acc -6
acc +17
jmp +298
jmp +358
acc +28
jmp +1
acc +27
jmp +204
jmp +4
acc +17
acc +47
jmp +83
acc -14
jmp -42
acc +0
acc +14
acc -9
acc +13
jmp +108
acc +1
acc -8
acc +44
jmp +420
acc -1
acc +24
jmp +101
acc -10
nop +493
nop +140
acc -12
jmp -134
acc +21
nop +385
acc +38
acc +4
jmp +349
jmp +225
nop +432
jmp +421
acc +33
acc +11
jmp +462
acc +21
acc +11
acc +5
acc +15
jmp +260
nop +308
acc -6
acc -14
acc -3
jmp +178
nop -33
jmp +80
acc +33
acc -11
acc +39
jmp +145
jmp +64
acc +49
acc +47
acc +13
jmp +331
acc +1
jmp -10
acc +37
nop +276
jmp +259
acc +16
acc +38
jmp +121
acc +11
nop +301
acc +2
jmp +94
nop +186
nop +255
jmp -106
nop -171
acc +35
acc -1
acc +44
jmp +129
acc +27
acc -6
jmp -150
acc +12
acc +19
acc +15
jmp +247
nop +309
nop +429
nop -131
jmp +410
jmp +187
acc -4
acc +45
acc +3
acc -16
jmp -166
acc +41
jmp +276
acc -2
nop +23
acc +11
acc +19
jmp +271
acc +35
jmp +136
acc +46
acc -9
nop +189
jmp +1
jmp -201
acc -11
nop -190
acc +9
jmp +175
acc +25
acc +10
acc -12
jmp -50
acc +44
jmp +132
acc -14
jmp -71
acc +47
acc -9
jmp -125
jmp +1
acc -5
acc +47
jmp +184
nop -26
jmp -48
acc +24
acc +33
acc +38
jmp +246
acc +38
nop -114
nop +42
nop +131
jmp +256
acc +48
nop -126
acc +20
jmp +189
acc +39
nop +206
acc +2
acc +8
jmp +279
acc +31
acc +8
acc -14
jmp +221
acc -14
acc +4
jmp +161
jmp +188
acc +13
acc +50
acc -10
acc +42
jmp -169
acc +25
jmp +292
acc +40
jmp +53
acc -1
acc +29
acc +20
jmp -240
jmp +4
acc +28
acc -9
jmp -158
jmp +305
acc +47
nop -250
nop -155
jmp +321
acc +24
acc +48
acc +41
acc -2
jmp -61
acc +40
jmp +1
jmp -209
jmp +231
acc +28
acc +13
jmp +45
nop +147
nop -35
jmp -36
acc +33
acc +12
acc +7
jmp -62
nop +1
acc +3
acc +18
jmp +320
acc +9
acc -19
acc -3
acc +11
jmp -151
acc +11
acc +31
jmp -296
acc -10
acc +21
jmp +104
acc +46
acc +22
jmp +29
jmp +1
jmp +187
acc -7
acc +28
acc +1
acc +8
jmp +74
acc +45
jmp +114
acc +21
nop -204
jmp -327
acc +5
acc +36
jmp -148
jmp +285
acc +2
jmp +1
jmp +197
jmp +271
nop +137
nop +279
acc +41
jmp +1
acc +43
jmp +214
nop -307
jmp +245
acc -13
nop -210
jmp +56
acc -7
acc +18
acc +12
jmp +88
acc -18
acc +32
jmp +1
jmp -199
acc -9
jmp -317
acc -17
acc +2
nop +202
acc +20
jmp +227
jmp -44
jmp -28
acc -9
acc +12
acc -10
acc +3
jmp -115
acc +19
acc +22
jmp -340
acc -7
acc +7
acc +32
acc -11
jmp -19
acc +7
jmp +1
acc +14
jmp -89
acc +39
jmp +75
acc +32
nop +215
acc +40
jmp +83
jmp +204
acc +1
acc +29
acc -2
jmp +70
acc -15
acc -1
nop -381
jmp +27
nop +65
acc +40
jmp -299
acc +16
acc +13
jmp -24
acc +26
jmp -20
acc +36
acc +10
nop -274
jmp -394
jmp +165
acc +33
acc -7
jmp -419
jmp -386
nop -298
nop -406
jmp -108
acc +10
acc +46
acc +0
nop +50
jmp -343
jmp -5
acc -8
jmp -233
acc +13
acc +43
jmp +87
jmp +24
acc +35
nop -421
acc +46
jmp -35
jmp -55
acc +24
acc +17
acc -16
acc +26
jmp +128
nop -11
jmp +167
acc +25
acc +14
nop -59
jmp -108
acc +50
acc -18
acc +45
jmp -390
acc -2
acc +16
jmp +123
acc +41
jmp -242
nop -338
acc -15
acc +44
jmp -227
nop +159
acc +10
jmp -298
jmp -338
acc +10
acc +9
acc +24
nop -173
jmp -330
nop -453
acc +2
jmp +1
jmp -138
acc +21
acc +50
jmp -451
acc +19
acc -7
nop -454
jmp +85
acc -11
acc +19
jmp -394
acc +27
acc +4
acc +42
jmp -491
acc +36
acc +33
acc -5
acc +39
jmp -425
acc +46
acc +10
jmp -452
acc -1
acc +36
jmp -339
acc +26
acc +24
acc -8
jmp -376
acc +35
jmp +1
acc -4
acc +24
jmp -71
acc +46
acc -4
acc -8
jmp -289
acc +11
acc +32
acc +32
acc +26
jmp -214
acc +46
nop -485
acc +16
jmp -287
jmp -95
acc +36
nop -376
acc -13
jmp -406
nop -278
acc +22
acc +21
acc +33
jmp -463
jmp +11
nop -346
acc +33
jmp -86
acc -17
nop -350
nop +83
jmp -299
acc +31
acc +28
jmp -516
acc -13
acc +15
acc -19
jmp -338
acc +21
acc +10
jmp -309
jmp -473
nop -150
jmp +44
acc +45
acc +41
acc +41
nop -139
jmp -448
jmp +1
jmp -103
nop -433
acc +1
acc -1
acc +0
jmp -289
jmp -531
jmp -134
acc +21
acc +14
jmp -51
jmp -520
jmp -275
acc +6
acc +42
jmp -256
acc +26
acc +36
jmp -17
acc +11
acc +32
nop -244
acc +42
jmp -546
jmp -565
acc +31
acc -12
nop -496
jmp -531
acc +25
nop -196
acc -18
acc +10
jmp -22
nop -231
jmp -41
jmp -555
acc +37
acc -14
acc +43
jmp -462
acc -11
acc +43
acc +15
jmp -229
acc +0
acc +20
acc -18
nop -3
jmp -240
acc +37
jmp -520
nop -424
jmp +1
jmp +1
nop -158
jmp -19
acc +0
nop -591
acc +29
nop -192
jmp -24
nop -55
jmp -364
acc +5
acc +33
jmp -176
acc +25
acc +6
acc +21
acc +16
jmp +1

@ -0,0 +1,37 @@
import time
tag8 = open('input', 'r')
tag8 = [x.strip() for x in tag8]
print(tag8)
acc = 0
zeiger = 0
besucht = list()
print('=' * 10, ' start loop', '=' * 10)
while True:
if zeiger in besucht:
break
zeile = tag8[zeiger]
besucht.append(zeiger)
instruction = zeile[0:3]
number = int(zeile[4:])
if instruction == 'jmp':
zeiger += number
else:
zeiger += 1
if instruction == 'acc':
acc += number
print(zeile, '\tacc:', acc, '\tzeiger:', zeiger, '\tbesucht:', besucht)
print()
time.sleep(0.3)
print('=' * 10, ' end loop', '=' * 10)
print('acc:', acc, '\tzeiger:', zeiger, '\tbesucht:', besucht)

@ -0,0 +1,54 @@
tag8 = open('input', 'r')
tag8 = [x.strip() for x in tag8]
def run_game():
acc = 0
zeiger = 0
besucht = list()
print('=' * 10, 'LOOP START', '=' * 10)
while zeiger < len(tag8):
if zeiger in besucht:
print('=' * 10, 'LOOP END. loop detected', '=' * 10)
return False
zeile = tag8[zeiger]
besucht.append(zeiger)
instruction = zeile[0:3]
number = int(zeile[4:])
if instruction == 'jmp':
zeiger += number
else:
zeiger += 1
if instruction == 'acc':
acc += number
print(zeile, 'zeiger', zeiger)
print('=' * 10, 'LOOP END. Terminated', '=' * 10)
return acc
acc = False
for zeilennummer, zeile in enumerate(tag8):
instruction = zeile[0:3]
rest = zeile[3:]
if instruction == 'nop':
tag8[zeilennummer] = 'jmp' + rest
acc = run_game()
if acc:
print(f'Success: Changed line {zeile} to jmp')
break
tag8[zeilennummer] = 'nop' + rest
elif instruction == 'jmp':
tag8[zeilennummer] = 'nop' + rest
acc = run_game()
if acc:
print(f'Success: Changed line {zeile} to nop')
break
tag8[zeilennummer] = 'jmp' + rest
print(f'Processed line {zeile}')
print('Acc nach der Schleife:', acc)
Loading…
Cancel
Save