Solve 2020/14
parent
6c0caca1e1
commit
93375b828f
@ -0,0 +1,4 @@
|
|||||||
|
mask = XXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXX0X
|
||||||
|
mem[8] = 11
|
||||||
|
mem[7] = 101
|
||||||
|
mem[8] = 0
|
@ -0,0 +1,4 @@
|
|||||||
|
mask = 000000000000000000000000000000X1001X
|
||||||
|
mem[42] = 100
|
||||||
|
mask = 00000000000000000000000000000000X0XX
|
||||||
|
mem[26] = 1
|
@ -0,0 +1,572 @@
|
|||||||
|
mask = 01X11X10X10110110X111X11010X1X101010
|
||||||
|
mem[19409] = 3025
|
||||||
|
mem[40104] = 798480382
|
||||||
|
mem[25359] = 905
|
||||||
|
mask = 01011X111100XX1100X1X10X110000000000
|
||||||
|
mem[55479] = 930785
|
||||||
|
mem[25548] = 130263864
|
||||||
|
mem[60518] = 202648
|
||||||
|
mem[11955] = 1138
|
||||||
|
mem[45248] = 753
|
||||||
|
mask = 00XX10001XXX00101X1XX1101000010X0010
|
||||||
|
mem[2050] = 27965
|
||||||
|
mem[5662] = 110507779
|
||||||
|
mem[60807] = 1608
|
||||||
|
mask = 000110101100XX10X01000X010X000010100
|
||||||
|
mem[28713] = 1039
|
||||||
|
mem[22733] = 182274602
|
||||||
|
mem[21460] = 12248397
|
||||||
|
mem[60257] = 103
|
||||||
|
mem[13722] = 137279
|
||||||
|
mem[2117] = 208446548
|
||||||
|
mask = 100110111X011X1X10110X11010001X11XX0
|
||||||
|
mem[29709] = 6606
|
||||||
|
mem[27812] = 143567051
|
||||||
|
mem[3595] = 478522065
|
||||||
|
mem[13123] = 7445318
|
||||||
|
mem[37070] = 32452
|
||||||
|
mem[60140] = 47608
|
||||||
|
mem[21316] = 69201021
|
||||||
|
mask = X10X0010110000111111X0X11X10X1000111
|
||||||
|
mem[29528] = 3980
|
||||||
|
mem[41054] = 274606
|
||||||
|
mem[34884] = 265241899
|
||||||
|
mem[7496] = 228368
|
||||||
|
mem[35014] = 109110
|
||||||
|
mem[40696] = 172101503
|
||||||
|
mask = 010X011010X0001X11101011X1X100010100
|
||||||
|
mem[23210] = 3864280
|
||||||
|
mem[53761] = 5046
|
||||||
|
mem[6853] = 1214
|
||||||
|
mem[45297] = 219
|
||||||
|
mem[33797] = 1843462
|
||||||
|
mask = 01011011110011110X0X01110110010XX000
|
||||||
|
mem[15509] = 16472647
|
||||||
|
mem[19332] = 526724681
|
||||||
|
mask = 0101X0101100X01X111X1X11X000X1X1X110
|
||||||
|
mem[16393] = 122368236
|
||||||
|
mem[18852] = 4351408
|
||||||
|
mem[56526] = 780
|
||||||
|
mem[46701] = 31085562
|
||||||
|
mem[53459] = 47134
|
||||||
|
mem[19409] = 7629114
|
||||||
|
mem[47891] = 76573711
|
||||||
|
mask = 000110X0010010X0X010XX110000X0X1000X
|
||||||
|
mem[35342] = 1095
|
||||||
|
mem[56466] = 3462270
|
||||||
|
mem[31124] = 204698678
|
||||||
|
mem[104] = 2115
|
||||||
|
mem[22733] = 154721
|
||||||
|
mask = 00X100X01XX000101X1001110000010XX110
|
||||||
|
mem[44047] = 6823624
|
||||||
|
mem[11955] = 242152
|
||||||
|
mem[41039] = 515174779
|
||||||
|
mask = 0101101X110X10110X11101011X00110XXXX
|
||||||
|
mem[46716] = 52535895
|
||||||
|
mem[20578] = 851818
|
||||||
|
mem[7307] = 1658
|
||||||
|
mem[59777] = 7566837
|
||||||
|
mem[38136] = 6
|
||||||
|
mem[18835] = 95379
|
||||||
|
mem[37574] = 28195477
|
||||||
|
mask = 010XXX101X0X0011X1100X1001110X01X100
|
||||||
|
mem[17831] = 4467
|
||||||
|
mem[45439] = 61064
|
||||||
|
mem[43070] = 291981105
|
||||||
|
mem[9562] = 725
|
||||||
|
mem[18574] = 82455219
|
||||||
|
mem[53761] = 2223
|
||||||
|
mask = 0001X010X1001010XX10011110000011000X
|
||||||
|
mem[24954] = 229575
|
||||||
|
mem[49643] = 118597
|
||||||
|
mem[40891] = 218656479
|
||||||
|
mem[6549] = 655
|
||||||
|
mem[16413] = 105021
|
||||||
|
mask = 01X0X01010010X111X1001X0X1X1X0000110
|
||||||
|
mem[24722] = 3306225
|
||||||
|
mem[18574] = 2046331
|
||||||
|
mem[51991] = 2879
|
||||||
|
mask = 010X10001X00XX10000000101100000X0000
|
||||||
|
mem[64694] = 69415191
|
||||||
|
mem[42979] = 1589
|
||||||
|
mem[49282] = 199
|
||||||
|
mem[3987] = 2386
|
||||||
|
mem[64631] = 17661
|
||||||
|
mask = 011XXX1010010111101X0000100100X10XX0
|
||||||
|
mem[21201] = 341993
|
||||||
|
mem[61134] = 328
|
||||||
|
mem[19716] = 463044
|
||||||
|
mem[53800] = 23668576
|
||||||
|
mem[46317] = 368717
|
||||||
|
mem[3978] = 2699
|
||||||
|
mask = X10X01X011001011X111101010X0XX111111
|
||||||
|
mem[5567] = 9644235
|
||||||
|
mem[50029] = 4717
|
||||||
|
mem[34043] = 119207
|
||||||
|
mem[35949] = 665131137
|
||||||
|
mem[58233] = 98752
|
||||||
|
mask = 0X00001011X0001111X000100X0000XX0110
|
||||||
|
mem[28818] = 809
|
||||||
|
mem[20113] = 604
|
||||||
|
mem[58178] = 11229
|
||||||
|
mem[9389] = 38294680
|
||||||
|
mem[34657] = 8016112
|
||||||
|
mem[10161] = 1585984
|
||||||
|
mem[8020] = 1403857
|
||||||
|
mask = 01011011110XX0110111111101100X000X01
|
||||||
|
mem[47451] = 201798
|
||||||
|
mem[62498] = 61888
|
||||||
|
mem[49564] = 16728
|
||||||
|
mem[60513] = 23392513
|
||||||
|
mem[36774] = 56575
|
||||||
|
mem[22431] = 70709
|
||||||
|
mask = 011X100011000X1X10X0101100X10X011111
|
||||||
|
mem[41938] = 34906
|
||||||
|
mem[62853] = 221817
|
||||||
|
mem[50173] = 471027372
|
||||||
|
mem[55286] = 4561108
|
||||||
|
mask = 1X010X0011010000X1100X000101X101X000
|
||||||
|
mem[22998] = 62382
|
||||||
|
mem[18574] = 57889052
|
||||||
|
mem[57700] = 1018
|
||||||
|
mask = X1XX0X1011001011111X101X111001111111
|
||||||
|
mem[34453] = 6483
|
||||||
|
mem[49122] = 391290
|
||||||
|
mask = 01010000000100110XX000011X00X01XX10X
|
||||||
|
mem[23870] = 19517
|
||||||
|
mem[24291] = 616878
|
||||||
|
mem[12134] = 1990123
|
||||||
|
mem[26637] = 55962054
|
||||||
|
mem[47968] = 712481177
|
||||||
|
mem[20878] = 242502
|
||||||
|
mem[30722] = 1568
|
||||||
|
mask = 11X11111X100XX1000100111100000000010
|
||||||
|
mem[35335] = 59630
|
||||||
|
mem[63185] = 11256526
|
||||||
|
mem[30722] = 266092278
|
||||||
|
mem[9776] = 63532545
|
||||||
|
mask = 10010010010X1010111X11001000X110101X
|
||||||
|
mem[12312] = 4029860
|
||||||
|
mem[27593] = 42705942
|
||||||
|
mem[46156] = 27895
|
||||||
|
mem[64088] = 1408576
|
||||||
|
mem[50342] = 15980145
|
||||||
|
mem[46315] = 29427
|
||||||
|
mem[47451] = 18865
|
||||||
|
mask = 011111001X0XX01010100110X11000X01100
|
||||||
|
mem[1293] = 837
|
||||||
|
mem[29000] = 10697
|
||||||
|
mask = XX0X0010X1001010XX11X01110X101101100
|
||||||
|
mem[42918] = 1028
|
||||||
|
mem[2608] = 3093
|
||||||
|
mem[21904] = 6098595
|
||||||
|
mem[41278] = 1039294
|
||||||
|
mem[53102] = 858102784
|
||||||
|
mask = 0X0110X01100X010X0X0001X10X00XX00000
|
||||||
|
mem[20578] = 860568571
|
||||||
|
mem[52466] = 143792
|
||||||
|
mem[10261] = 182
|
||||||
|
mask = 0X0110101100X011XX111X111110111X11XX
|
||||||
|
mem[5752] = 37841428
|
||||||
|
mem[31368] = 1094581
|
||||||
|
mask = 000X11101X01001110100001000X0100100X
|
||||||
|
mem[56372] = 1046359
|
||||||
|
mem[19541] = 315663570
|
||||||
|
mem[37436] = 437380
|
||||||
|
mem[54334] = 241690746
|
||||||
|
mem[16559] = 3127549
|
||||||
|
mem[59609] = 176914004
|
||||||
|
mask = 110101X01XX1000X0XX0100000X0000XX101
|
||||||
|
mem[1033] = 8174
|
||||||
|
mem[49587] = 107787
|
||||||
|
mem[1572] = 430
|
||||||
|
mem[49873] = 115828687
|
||||||
|
mem[24389] = 2707208
|
||||||
|
mem[30170] = 91827506
|
||||||
|
mask = 01XX01001XX10010X0101001000000011101
|
||||||
|
mem[26015] = 198698
|
||||||
|
mem[50136] = 19382
|
||||||
|
mem[16413] = 103882
|
||||||
|
mem[8340] = 2066093
|
||||||
|
mask = XX01101X1101101XX01111X01X1100X00100
|
||||||
|
mem[42378] = 518494
|
||||||
|
mem[13927] = 94055
|
||||||
|
mem[48225] = 15652034
|
||||||
|
mask = 000100X0110X101X0X1XXX1X10110011101X
|
||||||
|
mem[65006] = 6769
|
||||||
|
mem[46625] = 5473325
|
||||||
|
mem[22440] = 617624684
|
||||||
|
mem[24954] = 719974
|
||||||
|
mem[53626] = 62067
|
||||||
|
mask = 00011XX01101X01X1010X11X10000X00X0X0
|
||||||
|
mem[43072] = 106139234
|
||||||
|
mem[53459] = 26813614
|
||||||
|
mem[31162] = 184146764
|
||||||
|
mask = 0X01X0101X00001XXX10X11X000001000010
|
||||||
|
mem[5467] = 121320
|
||||||
|
mem[63724] = 11067492
|
||||||
|
mem[57246] = 315
|
||||||
|
mem[16413] = 2008242
|
||||||
|
mem[10240] = 11073
|
||||||
|
mem[24282] = 618660016
|
||||||
|
mask = 1101111011000010101X1101X0X0001X1011
|
||||||
|
mem[61598] = 627237127
|
||||||
|
mem[16057] = 235475116
|
||||||
|
mem[5662] = 6226
|
||||||
|
mem[61721] = 26023344
|
||||||
|
mem[58178] = 209547
|
||||||
|
mem[59687] = 141941
|
||||||
|
mem[9548] = 1392254
|
||||||
|
mask = 00011X1000X01010011X01111X0110X10100
|
||||||
|
mem[13185] = 300556
|
||||||
|
mem[51203] = 17097
|
||||||
|
mem[59687] = 8787507
|
||||||
|
mem[12337] = 124607
|
||||||
|
mem[46043] = 4378256
|
||||||
|
mask = 1100X100110100100110X10X000X01111101
|
||||||
|
mem[17458] = 420459
|
||||||
|
mem[46315] = 142385
|
||||||
|
mem[7273] = 58415
|
||||||
|
mem[49604] = 57549
|
||||||
|
mem[33375] = 12460422
|
||||||
|
mem[61540] = 7752
|
||||||
|
mask = X1X11XXX1100X010X0100100000000X00010
|
||||||
|
mem[28889] = 13691764
|
||||||
|
mem[27546] = 355436
|
||||||
|
mem[45337] = 10614
|
||||||
|
mem[64088] = 960
|
||||||
|
mem[39291] = 3019
|
||||||
|
mem[30722] = 1976602
|
||||||
|
mem[18725] = 299
|
||||||
|
mask = 0X111X1011000X101010X0X001X100XX1010
|
||||||
|
mem[5532] = 413573
|
||||||
|
mem[7707] = 78463710
|
||||||
|
mem[46156] = 25164851
|
||||||
|
mem[17354] = 15295191
|
||||||
|
mask = 000110100X0X10100X100011XX0010010000
|
||||||
|
mem[18725] = 7003
|
||||||
|
mem[49536] = 49752
|
||||||
|
mem[33519] = 116272721
|
||||||
|
mem[46701] = 253380665
|
||||||
|
mask = 000X001001001XXX101XX00X0101X1010000
|
||||||
|
mem[57459] = 792510
|
||||||
|
mem[10350] = 217210394
|
||||||
|
mem[43612] = 178868
|
||||||
|
mem[2374] = 42534899
|
||||||
|
mem[40891] = 621
|
||||||
|
mem[7270] = 1014999
|
||||||
|
mem[49038] = 1657373
|
||||||
|
mask = 00XX10100001100X01000110001001010X10
|
||||||
|
mem[7270] = 1904
|
||||||
|
mem[33267] = 171621958
|
||||||
|
mem[42531] = 623
|
||||||
|
mask = 011111001100001X00X0010X10010010001X
|
||||||
|
mem[59756] = 19646
|
||||||
|
mem[45248] = 182118
|
||||||
|
mem[49395] = 186
|
||||||
|
mem[46043] = 1875998
|
||||||
|
mem[42378] = 2150393
|
||||||
|
mem[16423] = 449813446
|
||||||
|
mask = 00X10X1001001010111X0X11100XX0101X01
|
||||||
|
mem[42378] = 11316
|
||||||
|
mem[6217] = 448726
|
||||||
|
mem[56349] = 105698
|
||||||
|
mem[18523] = 6560236
|
||||||
|
mask = 0X01101011000X101111X1110010X1110111
|
||||||
|
mem[57685] = 1052364113
|
||||||
|
mem[42200] = 1624
|
||||||
|
mem[64281] = 162750
|
||||||
|
mem[53459] = 900417618
|
||||||
|
mem[44010] = 311326
|
||||||
|
mem[38385] = 168338
|
||||||
|
mem[64234] = 715
|
||||||
|
mask = 0110001010X1001X111000XX01X110X1000X
|
||||||
|
mem[46270] = 413222
|
||||||
|
mem[20358] = 301418973
|
||||||
|
mask = 0101X01010000X1X111001000X010000X100
|
||||||
|
mem[25549] = 9478586
|
||||||
|
mem[27938] = 186993583
|
||||||
|
mem[10014] = 630139
|
||||||
|
mem[50316] = 22183454
|
||||||
|
mask = 00X10XX0110010100X10XX11X01000100010
|
||||||
|
mem[51762] = 575
|
||||||
|
mem[39895] = 33305
|
||||||
|
mem[19768] = 31036515
|
||||||
|
mem[30918] = 522221
|
||||||
|
mem[26371] = 790132
|
||||||
|
mem[43705] = 13814
|
||||||
|
mask = 00XXX010X1100010100101110101X0001110
|
||||||
|
mem[12495] = 2801000
|
||||||
|
mem[43811] = 35764
|
||||||
|
mem[59173] = 235362
|
||||||
|
mem[50677] = 13747007
|
||||||
|
mem[47458] = 49520
|
||||||
|
mask = 00X1101X1100X010X010001010000000010X
|
||||||
|
mem[19737] = 309
|
||||||
|
mem[10289] = 1391
|
||||||
|
mem[44222] = 202053013
|
||||||
|
mem[32818] = 57015
|
||||||
|
mask = XX111010X10XX0101010XX00000X00100X01
|
||||||
|
mem[25062] = 92115406
|
||||||
|
mem[40507] = 8539848
|
||||||
|
mem[6853] = 1555113
|
||||||
|
mem[59566] = 55734
|
||||||
|
mem[29440] = 3860
|
||||||
|
mem[2339] = 1687
|
||||||
|
mask = X0X100100100X000X0011000100100110001
|
||||||
|
mem[62983] = 496942
|
||||||
|
mem[55239] = 31959819
|
||||||
|
mem[23037] = 185
|
||||||
|
mem[14426] = 11052660
|
||||||
|
mem[59756] = 11483028
|
||||||
|
mask = 0X1X101011X0101X0X100110100110X101XX
|
||||||
|
mem[9761] = 26687118
|
||||||
|
mem[152] = 1818
|
||||||
|
mask = 01X110X01010001X1110XXX0000100X100X0
|
||||||
|
mem[46327] = 780262
|
||||||
|
mem[11424] = 1003003
|
||||||
|
mask = 010011XX100X0011X1XX000X01X10X011110
|
||||||
|
mem[40928] = 10697
|
||||||
|
mem[989] = 22449916
|
||||||
|
mem[9034] = 107225
|
||||||
|
mask = 010100X0X001001101100XX110X0000X10X0
|
||||||
|
mem[50403] = 60110
|
||||||
|
mem[1465] = 9126
|
||||||
|
mem[4598] = 348452
|
||||||
|
mem[26661] = 17672110
|
||||||
|
mask = 00X110101XX00010100X0010010011X10010
|
||||||
|
mem[38295] = 20183
|
||||||
|
mem[61069] = 22691
|
||||||
|
mem[51394] = 7278100
|
||||||
|
mem[18711] = 34474
|
||||||
|
mem[52888] = 1962576
|
||||||
|
mask = 1001001X0X001010101X0110XXX001XX100X
|
||||||
|
mem[33226] = 3641501
|
||||||
|
mem[2376] = 72068973
|
||||||
|
mem[57257] = 11382653
|
||||||
|
mem[22489] = 47282
|
||||||
|
mem[45359] = 38362
|
||||||
|
mask = 010X1X10010X101X01111010111110111011
|
||||||
|
mem[26980] = 755824
|
||||||
|
mem[47763] = 385
|
||||||
|
mem[23332] = 30083831
|
||||||
|
mem[32975] = 61896119
|
||||||
|
mask = XX0110111101X011X011X0XXX10000011100
|
||||||
|
mem[29709] = 711754376
|
||||||
|
mem[36513] = 71516
|
||||||
|
mem[7293] = 5061813
|
||||||
|
mem[60256] = 419151
|
||||||
|
mask = 0101101011000XX1111111X001100100XX00
|
||||||
|
mem[19475] = 35852
|
||||||
|
mem[57183] = 6494332
|
||||||
|
mem[1327] = 872346
|
||||||
|
mem[2543] = 943
|
||||||
|
mem[2188] = 868813
|
||||||
|
mem[29387] = 209125695
|
||||||
|
mask = 00X1X0101X1000X01X010X1X01100X0X1101
|
||||||
|
mem[51955] = 196066365
|
||||||
|
mem[38207] = 15671526
|
||||||
|
mem[26980] = 75520251
|
||||||
|
mem[11077] = 161630247
|
||||||
|
mem[26456] = 30666501
|
||||||
|
mem[19737] = 9386
|
||||||
|
mask = 1101011010110X0X01101XX001X0X001X001
|
||||||
|
mem[49292] = 858273
|
||||||
|
mem[11497] = 884831
|
||||||
|
mem[49282] = 93065
|
||||||
|
mem[54031] = 862594
|
||||||
|
mask = 0X01011010X1X01111X0X0X00X11X1010100
|
||||||
|
mem[58536] = 4031842
|
||||||
|
mem[11621] = 155458283
|
||||||
|
mem[8786] = 12859
|
||||||
|
mask = 00010010XXX000X010010X1XX001X0X01100
|
||||||
|
mem[45429] = 122467
|
||||||
|
mem[57256] = 759
|
||||||
|
mem[3687] = 384128816
|
||||||
|
mem[56464] = 10758724
|
||||||
|
mem[11869] = 652805159
|
||||||
|
mem[50173] = 75914445
|
||||||
|
mask = 0001001001001010111XX10X1X0XX0111101
|
||||||
|
mem[5809] = 743780
|
||||||
|
mem[52067] = 806
|
||||||
|
mem[12750] = 22132
|
||||||
|
mem[13019] = 654
|
||||||
|
mask = 00X110X01100101X00100X1X00XX00100001
|
||||||
|
mem[2117] = 4067660
|
||||||
|
mem[2068] = 9851885
|
||||||
|
mem[48662] = 52185630
|
||||||
|
mem[24246] = 72048
|
||||||
|
mem[25978] = 5182633
|
||||||
|
mask = 010X1010X0X0001111100X001101X01X0XX0
|
||||||
|
mem[10242] = 1118
|
||||||
|
mem[57601] = 525
|
||||||
|
mem[38099] = 930509
|
||||||
|
mask = 10111101110X0X10001001X00001001000X1
|
||||||
|
mem[50741] = 59787235
|
||||||
|
mem[1588] = 218533
|
||||||
|
mem[33080] = 182579
|
||||||
|
mem[3978] = 1591079
|
||||||
|
mem[62070] = 15472
|
||||||
|
mask = 0101100X1100X0X10110X010000X000X00X1
|
||||||
|
mem[3814] = 788124
|
||||||
|
mem[63265] = 215577374
|
||||||
|
mem[57364] = 1311024
|
||||||
|
mem[36364] = 3985
|
||||||
|
mem[18564] = 4526
|
||||||
|
mem[23647] = 376609
|
||||||
|
mask = 001XX00011010010111000101X100X0011X0
|
||||||
|
mem[61429] = 6896
|
||||||
|
mem[22094] = 1966698
|
||||||
|
mask = X00110111101XX111011101X011010100X01
|
||||||
|
mem[36214] = 310642
|
||||||
|
mem[59733] = 1160
|
||||||
|
mem[10909] = 1820
|
||||||
|
mem[25225] = 51102962
|
||||||
|
mem[35074] = 514484736
|
||||||
|
mem[21460] = 3630
|
||||||
|
mask = 1001001X01001010XX10111001XX1X1X1000
|
||||||
|
mem[53608] = 6145
|
||||||
|
mem[44618] = 302105
|
||||||
|
mem[50955] = 12609449
|
||||||
|
mem[48282] = 22035626
|
||||||
|
mask = 01X1XX001XXX001XX0100111000000001100
|
||||||
|
mem[47458] = 4534
|
||||||
|
mem[26444] = 4150059
|
||||||
|
mem[10366] = 1061
|
||||||
|
mem[51657] = 2817023
|
||||||
|
mem[35995] = 1064419
|
||||||
|
mem[38295] = 148703436
|
||||||
|
mask = 01X0001010010X1110X0000010111X001000
|
||||||
|
mem[26046] = 2672378
|
||||||
|
mem[1080] = 682
|
||||||
|
mem[2151] = 737
|
||||||
|
mask = 110X0100110100X001X0X1XXX100011101X0
|
||||||
|
mem[56044] = 527135884
|
||||||
|
mem[39296] = 107094645
|
||||||
|
mem[61785] = 1261
|
||||||
|
mask = 01001X00100X0011010000000101000XX101
|
||||||
|
mem[54752] = 16579540
|
||||||
|
mem[36330] = 1696582
|
||||||
|
mem[1435] = 240113842
|
||||||
|
mem[49758] = 7811
|
||||||
|
mem[51729] = 2543212
|
||||||
|
mem[10909] = 13139
|
||||||
|
mask = 0X0XXX100001101X011010101000011001XX
|
||||||
|
mem[58487] = 9986
|
||||||
|
mem[7175] = 3371969
|
||||||
|
mem[14294] = 10275
|
||||||
|
mem[36225] = 13168
|
||||||
|
mem[7934] = 48879
|
||||||
|
mem[47891] = 1571293
|
||||||
|
mem[18711] = 399
|
||||||
|
mask = X1010XX01X01001X01101010X1X00001X010
|
||||||
|
mem[62247] = 18380710
|
||||||
|
mem[20715] = 15548870
|
||||||
|
mem[61924] = 28821546
|
||||||
|
mem[40119] = 181518508
|
||||||
|
mem[50251] = 59934
|
||||||
|
mask = XXX1011X11X100X1X110001011X001100001
|
||||||
|
mem[13627] = 4734
|
||||||
|
mem[36208] = 48295
|
||||||
|
mem[37672] = 184327969
|
||||||
|
mem[60518] = 9137
|
||||||
|
mem[46168] = 105126453
|
||||||
|
mask = 1X111101110X0010001000XX000100XXX011
|
||||||
|
mem[4455] = 17333982
|
||||||
|
mem[58592] = 931411
|
||||||
|
mem[61752] = 198443
|
||||||
|
mem[183] = 808
|
||||||
|
mask = XX010010010XX0101011111111010011X100
|
||||||
|
mem[6221] = 256009562
|
||||||
|
mem[3528] = 422478
|
||||||
|
mem[16002] = 6328770
|
||||||
|
mask = 0X01X00011001010XX000010100000100010
|
||||||
|
mem[31570] = 32237
|
||||||
|
mem[14971] = 846258186
|
||||||
|
mem[18978] = 1202
|
||||||
|
mem[15368] = 120674
|
||||||
|
mem[13185] = 22420
|
||||||
|
mask = 010110111101101XX011X11XX11X00X00X00
|
||||||
|
mem[59330] = 628
|
||||||
|
mem[9283] = 58883
|
||||||
|
mem[44010] = 387833048
|
||||||
|
mask = 010010101001X1111010111X000X00X0X110
|
||||||
|
mem[50633] = 751888
|
||||||
|
mem[11056] = 31979
|
||||||
|
mem[50741] = 4724
|
||||||
|
mem[40028] = 7336181
|
||||||
|
mem[42263] = 6863
|
||||||
|
mask = 0001X010110000X00010010X10000XX10100
|
||||||
|
mem[20546] = 8708
|
||||||
|
mem[36908] = 234294
|
||||||
|
mem[63185] = 1408
|
||||||
|
mem[57531] = 1054
|
||||||
|
mem[13722] = 1045167819
|
||||||
|
mem[4617] = 3519205
|
||||||
|
mask = 00111000X10010X10010X01010X00010010X
|
||||||
|
mem[46693] = 4740
|
||||||
|
mem[17824] = 884
|
||||||
|
mem[54997] = 339096
|
||||||
|
mem[2117] = 26803
|
||||||
|
mem[20] = 84635057
|
||||||
|
mask = 0101XXX01100X011011X010000000X00X100
|
||||||
|
mem[40142] = 140297
|
||||||
|
mem[53459] = 5575659
|
||||||
|
mem[57435] = 69641959
|
||||||
|
mem[28563] = 433881
|
||||||
|
mem[59188] = 230341
|
||||||
|
mem[26483] = 151116806
|
||||||
|
mask = 110101X01XX100X10110001XX1X0X01000X1
|
||||||
|
mem[37526] = 454911
|
||||||
|
mem[35793] = 3340
|
||||||
|
mem[54537] = 630806
|
||||||
|
mem[58456] = 115228
|
||||||
|
mem[59172] = 13363
|
||||||
|
mask = 010110X0110000101010X001111X0X010010
|
||||||
|
mem[45969] = 1736711
|
||||||
|
mem[2487] = 610736260
|
||||||
|
mem[54173] = 453
|
||||||
|
mem[55144] = 2748104
|
||||||
|
mem[52466] = 6109568
|
||||||
|
mem[31890] = 3977366
|
||||||
|
mask = 01011001110000X101100X00X00X10010000
|
||||||
|
mem[64336] = 3971537
|
||||||
|
mem[60265] = 85267
|
||||||
|
mem[24597] = 7455656
|
||||||
|
mem[34924] = 703390248
|
||||||
|
mem[40391] = 328312
|
||||||
|
mem[49255] = 1117186
|
||||||
|
mask = 110X0100101100X1011010101X0X11X11010
|
||||||
|
mem[31313] = 789405
|
||||||
|
mem[7934] = 1803
|
||||||
|
mem[36190] = 1836611
|
||||||
|
mask = X0010010010010101X1X1X1010X111X010XX
|
||||||
|
mem[4017] = 64210
|
||||||
|
mem[40696] = 58930789
|
||||||
|
mem[18166] = 195479433
|
||||||
|
mem[41257] = 40207
|
||||||
|
mem[40948] = 1058796
|
||||||
|
mem[30803] = 486
|
||||||
|
mem[29709] = 72337
|
||||||
|
mask = 000X101000X110X001X00110X1X0011X0XX1
|
||||||
|
mem[11077] = 1653
|
||||||
|
mem[2376] = 77389
|
||||||
|
mem[19561] = 4876923
|
||||||
|
mem[32851] = 538156
|
||||||
|
mem[38532] = 1110
|
||||||
|
mask = X101101011X010111110X0111001X101010X
|
||||||
|
mem[44618] = 13980
|
||||||
|
mem[10366] = 711247
|
||||||
|
mem[4942] = 74171
|
||||||
|
mem[25306] = 350133
|
||||||
|
mem[21409] = 27748
|
||||||
|
mask = 00011010X1001010XXX0001110000001011X
|
||||||
|
mem[5809] = 1082
|
||||||
|
mem[36908] = 180
|
||||||
|
mem[59172] = 196430412
|
||||||
|
mem[60137] = 1388
|
||||||
|
mem[49643] = 1887
|
||||||
|
mask = 01011010X10000X1111111111XX00101111X
|
||||||
|
mem[56344] = 1237
|
||||||
|
mem[23638] = 37922654
|
||||||
|
mem[20307] = 593227321
|
@ -0,0 +1,46 @@
|
|||||||
|
const fs = require("fs");
|
||||||
|
|
||||||
|
const input = fs.readFileSync("input", "utf-8").trim().split("\n");
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
// original mask string
|
||||||
|
let mask = null;
|
||||||
|
const memory = [];
|
||||||
|
for (const line of input) {
|
||||||
|
if (line.startsWith("mask")) {
|
||||||
|
mask = line.slice(7);
|
||||||
|
} else {
|
||||||
|
const address = parseInt(line.slice(4));
|
||||||
|
const num = BigInt(parseInt(line.split(" = ")[1]));
|
||||||
|
memory[address] = apply(num, mask);
|
||||||
|
// debug(num, mask);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const sum = memory.reduce((a, b) => a + b, 0n);
|
||||||
|
console.log("Solution:");
|
||||||
|
console.log(sum.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
function debug(value, mask) {
|
||||||
|
const result = apply(value, mask);
|
||||||
|
console.log("=".repeat(18), " DEBUG ", "=".repeat(18));
|
||||||
|
console.log(`value: ${numToBin(value)} (decimal ${value})`);
|
||||||
|
console.log(`mask: ${mask}`);
|
||||||
|
console.log(`result: ${numToBin(result)} (decimal ${result})`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function numToBin(num) {
|
||||||
|
return num.toString(2).padStart(36, "0");
|
||||||
|
}
|
||||||
|
|
||||||
|
function binToNum(bin) {
|
||||||
|
return BigInt(parseInt(bin, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
function apply(num, mask) {
|
||||||
|
num = num & binToNum(mask.replaceAll("X", 1));
|
||||||
|
num = num | binToNum(mask.replaceAll("X", 0));
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
@ -0,0 +1,68 @@
|
|||||||
|
const fs = require("fs");
|
||||||
|
|
||||||
|
const input = fs.readFileSync("input", "utf-8").trim().split("\n");
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
// original mask string
|
||||||
|
let sum = 0n;
|
||||||
|
let mask = null;
|
||||||
|
const memory = [];
|
||||||
|
for (const line of input) {
|
||||||
|
if (line.startsWith("mask")) {
|
||||||
|
mask = line.slice(7);
|
||||||
|
} else {
|
||||||
|
const sourceAddress = BigInt(parseInt(line.slice(4)));
|
||||||
|
const num = BigInt(parseInt(line.split(" = ")[1]));
|
||||||
|
const addresses = apply(sourceAddress, mask);
|
||||||
|
for (const address of addresses) {
|
||||||
|
if (typeof memory[address] !== "undefined") {
|
||||||
|
sum -= memory[address];
|
||||||
|
}
|
||||||
|
memory[address] = num;
|
||||||
|
sum += num;
|
||||||
|
}
|
||||||
|
// debug(sourceAddress, mask, addresses);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log("Fill memory done");
|
||||||
|
console.log("Solution:");
|
||||||
|
console.log(sum.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
function debug(address, mask, addresses) {
|
||||||
|
console.log("=".repeat(18), " DEBUG ", "=".repeat(18));
|
||||||
|
console.log(`address: ${numToBin(address)} (decimal ${address})`);
|
||||||
|
console.log(`mask: ${mask}`);
|
||||||
|
console.log(`result: `);
|
||||||
|
for (const address of addresses) {
|
||||||
|
console.log(`${numToBin(address)} (decimal ${address})`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function numToBin(num) {
|
||||||
|
return num.toString(2).padStart(36, "0");
|
||||||
|
}
|
||||||
|
|
||||||
|
function binToNum(bin) {
|
||||||
|
return BigInt(parseInt(bin, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
function apply(address, mask) {
|
||||||
|
address = address | binToNum(mask.replaceAll("X", 0));
|
||||||
|
address = numToBin(address);
|
||||||
|
let addresses = [""];
|
||||||
|
for (let i = 0; i < address.length; i++) {
|
||||||
|
const bit = address[i];
|
||||||
|
const maskBit = mask[i];
|
||||||
|
if (maskBit === "X") {
|
||||||
|
const zeroConcated = addresses.map((adr) => adr + "0");
|
||||||
|
const oneConcated = addresses.map((adr) => adr + "1");
|
||||||
|
addresses = [...zeroConcated, ...oneConcated];
|
||||||
|
} else {
|
||||||
|
addresses = addresses.map((adr) => adr + bit);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return addresses.map(binToNum);
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
Loading…
Reference in New Issue