add 2015 d7 and d8
This commit is contained in:
parent
feb9efed49
commit
58d1719ee9
300
data/2015/6.txt
Normal file
300
data/2015/6.txt
Normal file
|
@ -0,0 +1,300 @@
|
|||
turn on 887,9 through 959,629
|
||||
turn on 454,398 through 844,448
|
||||
turn off 539,243 through 559,965
|
||||
turn off 370,819 through 676,868
|
||||
turn off 145,40 through 370,997
|
||||
turn off 301,3 through 808,453
|
||||
turn on 351,678 through 951,908
|
||||
toggle 720,196 through 897,994
|
||||
toggle 831,394 through 904,860
|
||||
toggle 753,664 through 970,926
|
||||
turn off 150,300 through 213,740
|
||||
turn on 141,242 through 932,871
|
||||
toggle 294,259 through 474,326
|
||||
toggle 678,333 through 752,957
|
||||
toggle 393,804 through 510,976
|
||||
turn off 6,964 through 411,976
|
||||
turn off 33,572 through 978,590
|
||||
turn on 579,693 through 650,978
|
||||
turn on 150,20 through 652,719
|
||||
turn off 782,143 through 808,802
|
||||
turn off 240,377 through 761,468
|
||||
turn off 899,828 through 958,967
|
||||
turn on 613,565 through 952,659
|
||||
turn on 295,36 through 964,978
|
||||
toggle 846,296 through 969,528
|
||||
turn off 211,254 through 529,491
|
||||
turn off 231,594 through 406,794
|
||||
turn off 169,791 through 758,942
|
||||
turn on 955,440 through 980,477
|
||||
toggle 944,498 through 995,928
|
||||
turn on 519,391 through 605,718
|
||||
toggle 521,303 through 617,366
|
||||
turn off 524,349 through 694,791
|
||||
toggle 391,87 through 499,792
|
||||
toggle 562,527 through 668,935
|
||||
turn off 68,358 through 857,453
|
||||
toggle 815,811 through 889,828
|
||||
turn off 666,61 through 768,87
|
||||
turn on 27,501 through 921,952
|
||||
turn on 953,102 through 983,471
|
||||
turn on 277,552 through 451,723
|
||||
turn off 64,253 through 655,960
|
||||
turn on 47,485 through 734,977
|
||||
turn off 59,119 through 699,734
|
||||
toggle 407,898 through 493,955
|
||||
toggle 912,966 through 949,991
|
||||
turn on 479,990 through 895,990
|
||||
toggle 390,589 through 869,766
|
||||
toggle 593,903 through 926,943
|
||||
toggle 358,439 through 870,528
|
||||
turn off 649,410 through 652,875
|
||||
turn on 629,834 through 712,895
|
||||
toggle 254,555 through 770,901
|
||||
toggle 641,832 through 947,850
|
||||
turn on 268,448 through 743,777
|
||||
turn off 512,123 through 625,874
|
||||
turn off 498,262 through 930,811
|
||||
turn off 835,158 through 886,242
|
||||
toggle 546,310 through 607,773
|
||||
turn on 501,505 through 896,909
|
||||
turn off 666,796 through 817,924
|
||||
toggle 987,789 through 993,809
|
||||
toggle 745,8 through 860,693
|
||||
toggle 181,983 through 731,988
|
||||
turn on 826,174 through 924,883
|
||||
turn on 239,228 through 843,993
|
||||
turn on 205,613 through 891,667
|
||||
toggle 867,873 through 984,896
|
||||
turn on 628,251 through 677,681
|
||||
toggle 276,956 through 631,964
|
||||
turn on 78,358 through 974,713
|
||||
turn on 521,360 through 773,597
|
||||
turn off 963,52 through 979,502
|
||||
turn on 117,151 through 934,622
|
||||
toggle 237,91 through 528,164
|
||||
turn on 944,269 through 975,453
|
||||
toggle 979,460 through 988,964
|
||||
turn off 440,254 through 681,507
|
||||
toggle 347,100 through 896,785
|
||||
turn off 329,592 through 369,985
|
||||
turn on 931,960 through 979,985
|
||||
toggle 703,3 through 776,36
|
||||
toggle 798,120 through 908,550
|
||||
turn off 186,605 through 914,709
|
||||
turn off 921,725 through 979,956
|
||||
toggle 167,34 through 735,249
|
||||
turn on 726,781 through 987,936
|
||||
toggle 720,336 through 847,756
|
||||
turn on 171,630 through 656,769
|
||||
turn off 417,276 through 751,500
|
||||
toggle 559,485 through 584,534
|
||||
turn on 568,629 through 690,873
|
||||
toggle 248,712 through 277,988
|
||||
toggle 345,594 through 812,723
|
||||
turn off 800,108 through 834,618
|
||||
turn off 967,439 through 986,869
|
||||
turn on 842,209 through 955,529
|
||||
turn on 132,653 through 357,696
|
||||
turn on 817,38 through 973,662
|
||||
turn off 569,816 through 721,861
|
||||
turn on 568,429 through 945,724
|
||||
turn on 77,458 through 844,685
|
||||
turn off 138,78 through 498,851
|
||||
turn on 136,21 through 252,986
|
||||
turn off 2,460 through 863,472
|
||||
turn on 172,81 through 839,332
|
||||
turn on 123,216 through 703,384
|
||||
turn off 879,644 through 944,887
|
||||
toggle 227,491 through 504,793
|
||||
toggle 580,418 through 741,479
|
||||
toggle 65,276 through 414,299
|
||||
toggle 482,486 through 838,931
|
||||
turn off 557,768 through 950,927
|
||||
turn off 615,617 through 955,864
|
||||
turn on 859,886 through 923,919
|
||||
turn on 391,330 through 499,971
|
||||
toggle 521,835 through 613,847
|
||||
turn on 822,787 through 989,847
|
||||
turn on 192,142 through 357,846
|
||||
turn off 564,945 through 985,945
|
||||
turn off 479,361 through 703,799
|
||||
toggle 56,481 through 489,978
|
||||
turn off 632,991 through 774,998
|
||||
toggle 723,526 through 945,792
|
||||
turn on 344,149 through 441,640
|
||||
toggle 568,927 through 624,952
|
||||
turn on 621,784 through 970,788
|
||||
toggle 665,783 through 795,981
|
||||
toggle 386,610 through 817,730
|
||||
toggle 440,399 through 734,417
|
||||
toggle 939,201 through 978,803
|
||||
turn off 395,883 through 554,929
|
||||
turn on 340,309 through 637,561
|
||||
turn off 875,147 through 946,481
|
||||
turn off 945,837 through 957,922
|
||||
turn off 429,982 through 691,991
|
||||
toggle 227,137 through 439,822
|
||||
toggle 4,848 through 7,932
|
||||
turn off 545,146 through 756,943
|
||||
turn on 763,863 through 937,994
|
||||
turn on 232,94 through 404,502
|
||||
turn off 742,254 through 930,512
|
||||
turn on 91,931 through 101,942
|
||||
toggle 585,106 through 651,425
|
||||
turn on 506,700 through 567,960
|
||||
turn off 548,44 through 718,352
|
||||
turn off 194,827 through 673,859
|
||||
turn off 6,645 through 509,764
|
||||
turn off 13,230 through 821,361
|
||||
turn on 734,629 through 919,631
|
||||
toggle 788,552 through 957,972
|
||||
toggle 244,747 through 849,773
|
||||
turn off 162,553 through 276,887
|
||||
turn off 569,577 through 587,604
|
||||
turn off 799,482 through 854,956
|
||||
turn on 744,535 through 909,802
|
||||
toggle 330,641 through 396,986
|
||||
turn off 927,458 through 966,564
|
||||
toggle 984,486 through 986,913
|
||||
toggle 519,682 through 632,708
|
||||
turn on 984,977 through 989,986
|
||||
toggle 766,423 through 934,495
|
||||
turn on 17,509 through 947,718
|
||||
turn on 413,783 through 631,903
|
||||
turn on 482,370 through 493,688
|
||||
turn on 433,859 through 628,938
|
||||
turn off 769,549 through 945,810
|
||||
turn on 178,853 through 539,941
|
||||
turn off 203,251 through 692,433
|
||||
turn off 525,638 through 955,794
|
||||
turn on 169,70 through 764,939
|
||||
toggle 59,352 through 896,404
|
||||
toggle 143,245 through 707,320
|
||||
turn off 103,35 through 160,949
|
||||
toggle 496,24 through 669,507
|
||||
turn off 581,847 through 847,903
|
||||
turn on 689,153 through 733,562
|
||||
turn on 821,487 through 839,699
|
||||
turn on 837,627 through 978,723
|
||||
toggle 96,748 through 973,753
|
||||
toggle 99,818 through 609,995
|
||||
turn on 731,193 through 756,509
|
||||
turn off 622,55 through 813,365
|
||||
turn on 456,490 through 576,548
|
||||
turn on 48,421 through 163,674
|
||||
turn off 853,861 through 924,964
|
||||
turn off 59,963 through 556,987
|
||||
turn on 458,710 through 688,847
|
||||
toggle 12,484 through 878,562
|
||||
turn off 241,964 through 799,983
|
||||
turn off 434,299 through 845,772
|
||||
toggle 896,725 through 956,847
|
||||
turn on 740,289 through 784,345
|
||||
turn off 395,840 through 822,845
|
||||
turn on 955,224 through 996,953
|
||||
turn off 710,186 through 957,722
|
||||
turn off 485,949 through 869,985
|
||||
turn on 848,209 through 975,376
|
||||
toggle 221,241 through 906,384
|
||||
turn on 588,49 through 927,496
|
||||
turn on 273,332 through 735,725
|
||||
turn on 505,962 through 895,962
|
||||
toggle 820,112 through 923,143
|
||||
turn on 919,792 through 978,982
|
||||
toggle 489,461 through 910,737
|
||||
turn off 202,642 through 638,940
|
||||
turn off 708,953 through 970,960
|
||||
toggle 437,291 through 546,381
|
||||
turn on 409,358 through 837,479
|
||||
turn off 756,279 through 870,943
|
||||
turn off 154,657 through 375,703
|
||||
turn off 524,622 through 995,779
|
||||
toggle 514,221 through 651,850
|
||||
toggle 808,464 through 886,646
|
||||
toggle 483,537 through 739,840
|
||||
toggle 654,769 through 831,825
|
||||
turn off 326,37 through 631,69
|
||||
turn off 590,570 through 926,656
|
||||
turn off 881,913 through 911,998
|
||||
turn on 996,102 through 998,616
|
||||
turn off 677,503 through 828,563
|
||||
turn on 860,251 through 877,441
|
||||
turn off 964,100 through 982,377
|
||||
toggle 888,403 through 961,597
|
||||
turn off 632,240 through 938,968
|
||||
toggle 731,176 through 932,413
|
||||
turn on 5,498 through 203,835
|
||||
turn on 819,352 through 929,855
|
||||
toggle 393,813 through 832,816
|
||||
toggle 725,689 through 967,888
|
||||
turn on 968,950 through 969,983
|
||||
turn off 152,628 through 582,896
|
||||
turn off 165,844 through 459,935
|
||||
turn off 882,741 through 974,786
|
||||
turn off 283,179 through 731,899
|
||||
toggle 197,366 through 682,445
|
||||
turn on 106,309 through 120,813
|
||||
toggle 950,387 through 967,782
|
||||
turn off 274,603 through 383,759
|
||||
turn off 155,665 through 284,787
|
||||
toggle 551,871 through 860,962
|
||||
turn off 30,826 through 598,892
|
||||
toggle 76,552 through 977,888
|
||||
turn on 938,180 through 994,997
|
||||
toggle 62,381 through 993,656
|
||||
toggle 625,861 through 921,941
|
||||
turn on 685,311 through 872,521
|
||||
turn on 124,934 through 530,962
|
||||
turn on 606,379 through 961,867
|
||||
turn off 792,735 through 946,783
|
||||
turn on 417,480 through 860,598
|
||||
toggle 178,91 through 481,887
|
||||
turn off 23,935 through 833,962
|
||||
toggle 317,14 through 793,425
|
||||
turn on 986,89 through 999,613
|
||||
turn off 359,201 through 560,554
|
||||
turn off 729,494 through 942,626
|
||||
turn on 204,143 through 876,610
|
||||
toggle 474,97 through 636,542
|
||||
turn off 902,924 through 976,973
|
||||
turn off 389,442 through 824,638
|
||||
turn off 622,863 through 798,863
|
||||
turn on 840,622 through 978,920
|
||||
toggle 567,374 through 925,439
|
||||
turn off 643,319 through 935,662
|
||||
toggle 185,42 through 294,810
|
||||
turn on 47,124 through 598,880
|
||||
toggle 828,303 through 979,770
|
||||
turn off 174,272 through 280,311
|
||||
turn off 540,50 through 880,212
|
||||
turn on 141,994 through 221,998
|
||||
turn on 476,695 through 483,901
|
||||
turn on 960,216 through 972,502
|
||||
toggle 752,335 through 957,733
|
||||
turn off 419,713 through 537,998
|
||||
toggle 772,846 through 994,888
|
||||
turn on 881,159 through 902,312
|
||||
turn off 537,651 through 641,816
|
||||
toggle 561,947 through 638,965
|
||||
turn on 368,458 through 437,612
|
||||
turn on 290,149 through 705,919
|
||||
turn on 711,918 through 974,945
|
||||
toggle 916,242 through 926,786
|
||||
toggle 522,272 through 773,314
|
||||
turn on 432,897 through 440,954
|
||||
turn off 132,169 through 775,380
|
||||
toggle 52,205 through 693,747
|
||||
toggle 926,309 through 976,669
|
||||
turn off 838,342 through 938,444
|
||||
turn on 144,431 through 260,951
|
||||
toggle 780,318 through 975,495
|
||||
turn off 185,412 through 796,541
|
||||
turn on 879,548 through 892,860
|
||||
turn on 294,132 through 460,338
|
||||
turn on 823,500 through 899,529
|
||||
turn off 225,603 through 483,920
|
||||
toggle 717,493 through 930,875
|
||||
toggle 534,948 through 599,968
|
||||
turn on 522,730 through 968,950
|
||||
turn off 102,229 through 674,529
|
339
data/2015/7.txt
Normal file
339
data/2015/7.txt
Normal file
|
@ -0,0 +1,339 @@
|
|||
NOT dq -> dr
|
||||
kg OR kf -> kh
|
||||
ep OR eo -> eq
|
||||
44430 -> b
|
||||
NOT gs -> gt
|
||||
dd OR do -> dp
|
||||
eg AND ei -> ej
|
||||
y AND ae -> ag
|
||||
jx AND jz -> ka
|
||||
lf RSHIFT 2 -> lg
|
||||
z AND aa -> ac
|
||||
dy AND ej -> el
|
||||
bj OR bi -> bk
|
||||
kk RSHIFT 3 -> km
|
||||
NOT cn -> co
|
||||
gn AND gp -> gq
|
||||
cq AND cs -> ct
|
||||
eo LSHIFT 15 -> es
|
||||
lg OR lm -> ln
|
||||
dy OR ej -> ek
|
||||
NOT di -> dj
|
||||
1 AND fi -> fj
|
||||
kf LSHIFT 15 -> kj
|
||||
NOT jy -> jz
|
||||
NOT ft -> fu
|
||||
fs AND fu -> fv
|
||||
NOT hr -> hs
|
||||
ck OR cl -> cm
|
||||
jp RSHIFT 5 -> js
|
||||
iv OR jb -> jc
|
||||
is OR it -> iu
|
||||
ld OR le -> lf
|
||||
NOT fc -> fd
|
||||
NOT dm -> dn
|
||||
bn OR by -> bz
|
||||
aj AND al -> am
|
||||
cd LSHIFT 15 -> ch
|
||||
jp AND ka -> kc
|
||||
ci OR ct -> cu
|
||||
gv AND gx -> gy
|
||||
de AND dk -> dm
|
||||
x RSHIFT 5 -> aa
|
||||
et RSHIFT 2 -> eu
|
||||
x RSHIFT 1 -> aq
|
||||
ia OR ig -> ih
|
||||
bk LSHIFT 1 -> ce
|
||||
y OR ae -> af
|
||||
NOT ca -> cb
|
||||
e AND f -> h
|
||||
ia AND ig -> ii
|
||||
ck AND cl -> cn
|
||||
NOT jh -> ji
|
||||
z OR aa -> ab
|
||||
1 AND en -> eo
|
||||
ib AND ic -> ie
|
||||
NOT eh -> ei
|
||||
iy AND ja -> jb
|
||||
NOT bb -> bc
|
||||
ha OR gz -> hb
|
||||
1 AND cx -> cy
|
||||
NOT ax -> ay
|
||||
ev OR ew -> ex
|
||||
bn RSHIFT 2 -> bo
|
||||
er OR es -> et
|
||||
eu OR fa -> fb
|
||||
jp OR ka -> kb
|
||||
ea AND eb -> ed
|
||||
k AND m -> n
|
||||
et RSHIFT 3 -> ev
|
||||
et RSHIFT 5 -> ew
|
||||
hz RSHIFT 1 -> is
|
||||
ki OR kj -> kk
|
||||
NOT h -> i
|
||||
lv LSHIFT 15 -> lz
|
||||
as RSHIFT 1 -> bl
|
||||
hu LSHIFT 15 -> hy
|
||||
iw AND ix -> iz
|
||||
lf RSHIFT 1 -> ly
|
||||
fp OR fv -> fw
|
||||
1 AND am -> an
|
||||
ap LSHIFT 1 -> bj
|
||||
u LSHIFT 1 -> ao
|
||||
b RSHIFT 5 -> f
|
||||
jq AND jw -> jy
|
||||
iu RSHIFT 3 -> iw
|
||||
ih AND ij -> ik
|
||||
NOT iz -> ja
|
||||
de OR dk -> dl
|
||||
iu OR jf -> jg
|
||||
as AND bd -> bf
|
||||
b RSHIFT 3 -> e
|
||||
jq OR jw -> jx
|
||||
iv AND jb -> jd
|
||||
cg OR ch -> ci
|
||||
iu AND jf -> jh
|
||||
lx -> a
|
||||
1 AND cc -> cd
|
||||
ly OR lz -> ma
|
||||
NOT el -> em
|
||||
1 AND bh -> bi
|
||||
fb AND fd -> fe
|
||||
lf OR lq -> lr
|
||||
bn RSHIFT 3 -> bp
|
||||
bn AND by -> ca
|
||||
af AND ah -> ai
|
||||
cf LSHIFT 1 -> cz
|
||||
dw OR dx -> dy
|
||||
gj AND gu -> gw
|
||||
jg AND ji -> jj
|
||||
jr OR js -> jt
|
||||
bl OR bm -> bn
|
||||
gj RSHIFT 2 -> gk
|
||||
cj OR cp -> cq
|
||||
gj OR gu -> gv
|
||||
b OR n -> o
|
||||
o AND q -> r
|
||||
bi LSHIFT 15 -> bm
|
||||
dy RSHIFT 1 -> er
|
||||
cu AND cw -> cx
|
||||
iw OR ix -> iy
|
||||
hc OR hd -> he
|
||||
0 -> c
|
||||
db OR dc -> dd
|
||||
kk RSHIFT 2 -> kl
|
||||
eq LSHIFT 1 -> fk
|
||||
dz OR ef -> eg
|
||||
NOT ed -> ee
|
||||
lw OR lv -> lx
|
||||
fw AND fy -> fz
|
||||
dz AND ef -> eh
|
||||
jp RSHIFT 3 -> jr
|
||||
lg AND lm -> lo
|
||||
ci RSHIFT 2 -> cj
|
||||
be AND bg -> bh
|
||||
lc LSHIFT 1 -> lw
|
||||
hm AND ho -> hp
|
||||
jr AND js -> ju
|
||||
1 AND io -> ip
|
||||
cm AND co -> cp
|
||||
ib OR ic -> id
|
||||
NOT bf -> bg
|
||||
fo RSHIFT 5 -> fr
|
||||
ip LSHIFT 15 -> it
|
||||
jt AND jv -> jw
|
||||
jc AND je -> jf
|
||||
du OR dt -> dv
|
||||
NOT fx -> fy
|
||||
aw AND ay -> az
|
||||
ge LSHIFT 15 -> gi
|
||||
NOT ak -> al
|
||||
fm OR fn -> fo
|
||||
ff AND fh -> fi
|
||||
ci RSHIFT 5 -> cl
|
||||
cz OR cy -> da
|
||||
NOT ey -> ez
|
||||
NOT ju -> jv
|
||||
NOT ls -> lt
|
||||
kk AND kv -> kx
|
||||
NOT ii -> ij
|
||||
kl AND kr -> kt
|
||||
jk LSHIFT 15 -> jo
|
||||
e OR f -> g
|
||||
NOT bs -> bt
|
||||
hi AND hk -> hl
|
||||
hz OR ik -> il
|
||||
ek AND em -> en
|
||||
ao OR an -> ap
|
||||
dv LSHIFT 1 -> ep
|
||||
an LSHIFT 15 -> ar
|
||||
fo RSHIFT 1 -> gh
|
||||
NOT im -> in
|
||||
kk RSHIFT 1 -> ld
|
||||
hw LSHIFT 1 -> iq
|
||||
ec AND ee -> ef
|
||||
hb LSHIFT 1 -> hv
|
||||
kb AND kd -> ke
|
||||
x AND ai -> ak
|
||||
dd AND do -> dq
|
||||
aq OR ar -> as
|
||||
iq OR ip -> ir
|
||||
dl AND dn -> do
|
||||
iu RSHIFT 5 -> ix
|
||||
as OR bd -> be
|
||||
NOT go -> gp
|
||||
fk OR fj -> fl
|
||||
jm LSHIFT 1 -> kg
|
||||
NOT cv -> cw
|
||||
dp AND dr -> ds
|
||||
dt LSHIFT 15 -> dx
|
||||
et RSHIFT 1 -> fm
|
||||
dy RSHIFT 3 -> ea
|
||||
fp AND fv -> fx
|
||||
NOT p -> q
|
||||
dd RSHIFT 2 -> de
|
||||
eu AND fa -> fc
|
||||
ba AND bc -> bd
|
||||
dh AND dj -> dk
|
||||
lr AND lt -> lu
|
||||
he RSHIFT 1 -> hx
|
||||
ex AND ez -> fa
|
||||
df OR dg -> dh
|
||||
fj LSHIFT 15 -> fn
|
||||
NOT kx -> ky
|
||||
gk OR gq -> gr
|
||||
dy RSHIFT 2 -> dz
|
||||
gh OR gi -> gj
|
||||
lj AND ll -> lm
|
||||
x OR ai -> aj
|
||||
bz AND cb -> cc
|
||||
1 AND lu -> lv
|
||||
as RSHIFT 3 -> au
|
||||
ce OR cd -> cf
|
||||
il AND in -> io
|
||||
dd RSHIFT 1 -> dw
|
||||
NOT lo -> lp
|
||||
c LSHIFT 1 -> t
|
||||
dd RSHIFT 3 -> df
|
||||
dd RSHIFT 5 -> dg
|
||||
lh AND li -> lk
|
||||
lf RSHIFT 5 -> li
|
||||
dy RSHIFT 5 -> eb
|
||||
NOT kt -> ku
|
||||
at OR az -> ba
|
||||
x RSHIFT 3 -> z
|
||||
NOT lk -> ll
|
||||
lb OR la -> lc
|
||||
1 AND r -> s
|
||||
lh OR li -> lj
|
||||
ln AND lp -> lq
|
||||
kk RSHIFT 5 -> kn
|
||||
ea OR eb -> ec
|
||||
ci AND ct -> cv
|
||||
b RSHIFT 2 -> d
|
||||
jp RSHIFT 1 -> ki
|
||||
NOT cr -> cs
|
||||
NOT jd -> je
|
||||
jp RSHIFT 2 -> jq
|
||||
jn OR jo -> jp
|
||||
lf RSHIFT 3 -> lh
|
||||
1 AND ds -> dt
|
||||
lf AND lq -> ls
|
||||
la LSHIFT 15 -> le
|
||||
NOT fg -> fh
|
||||
at AND az -> bb
|
||||
au AND av -> ax
|
||||
kw AND ky -> kz
|
||||
v OR w -> x
|
||||
kk OR kv -> kw
|
||||
ks AND ku -> kv
|
||||
kh LSHIFT 1 -> lb
|
||||
1 AND kz -> la
|
||||
NOT kc -> kd
|
||||
x RSHIFT 2 -> y
|
||||
et OR fe -> ff
|
||||
et AND fe -> fg
|
||||
NOT ac -> ad
|
||||
jl OR jk -> jm
|
||||
1 AND jj -> jk
|
||||
bn RSHIFT 1 -> cg
|
||||
NOT kp -> kq
|
||||
ci RSHIFT 3 -> ck
|
||||
ev AND ew -> ey
|
||||
1 AND ke -> kf
|
||||
cj AND cp -> cr
|
||||
ir LSHIFT 1 -> jl
|
||||
NOT gw -> gx
|
||||
as RSHIFT 2 -> at
|
||||
iu RSHIFT 1 -> jn
|
||||
cy LSHIFT 15 -> dc
|
||||
hg OR hh -> hi
|
||||
ci RSHIFT 1 -> db
|
||||
au OR av -> aw
|
||||
km AND kn -> kp
|
||||
gj RSHIFT 1 -> hc
|
||||
iu RSHIFT 2 -> iv
|
||||
ab AND ad -> ae
|
||||
da LSHIFT 1 -> du
|
||||
NOT bw -> bx
|
||||
km OR kn -> ko
|
||||
ko AND kq -> kr
|
||||
bv AND bx -> by
|
||||
kl OR kr -> ks
|
||||
1 AND ht -> hu
|
||||
df AND dg -> di
|
||||
NOT ag -> ah
|
||||
d OR j -> k
|
||||
d AND j -> l
|
||||
b AND n -> p
|
||||
gf OR ge -> gg
|
||||
gg LSHIFT 1 -> ha
|
||||
bn RSHIFT 5 -> bq
|
||||
bo OR bu -> bv
|
||||
1 AND gy -> gz
|
||||
s LSHIFT 15 -> w
|
||||
NOT ie -> if
|
||||
as RSHIFT 5 -> av
|
||||
bo AND bu -> bw
|
||||
hz AND ik -> im
|
||||
bp AND bq -> bs
|
||||
b RSHIFT 1 -> v
|
||||
NOT l -> m
|
||||
bp OR bq -> br
|
||||
g AND i -> j
|
||||
br AND bt -> bu
|
||||
t OR s -> u
|
||||
hz RSHIFT 5 -> ic
|
||||
gk AND gq -> gs
|
||||
fl LSHIFT 1 -> gf
|
||||
he RSHIFT 3 -> hg
|
||||
gz LSHIFT 15 -> hd
|
||||
hf OR hl -> hm
|
||||
1 AND gd -> ge
|
||||
fo OR fz -> ga
|
||||
id AND if -> ig
|
||||
fo AND fz -> gb
|
||||
gr AND gt -> gu
|
||||
he OR hp -> hq
|
||||
fq AND fr -> ft
|
||||
ga AND gc -> gd
|
||||
fo RSHIFT 2 -> fp
|
||||
gl OR gm -> gn
|
||||
hg AND hh -> hj
|
||||
NOT hn -> ho
|
||||
gl AND gm -> go
|
||||
he RSHIFT 5 -> hh
|
||||
NOT gb -> gc
|
||||
hq AND hs -> ht
|
||||
hz RSHIFT 3 -> ib
|
||||
hz RSHIFT 2 -> ia
|
||||
fq OR fr -> fs
|
||||
hx OR hy -> hz
|
||||
he AND hp -> hr
|
||||
gj RSHIFT 5 -> gm
|
||||
hf AND hl -> hn
|
||||
hv OR hu -> hw
|
||||
NOT hj -> hk
|
||||
gj RSHIFT 3 -> gl
|
||||
fo RSHIFT 3 -> fq
|
||||
he RSHIFT 2 -> hf
|
300
data/2015/8.txt
Normal file
300
data/2015/8.txt
Normal file
|
@ -0,0 +1,300 @@
|
|||
"azlgxdbljwygyttzkfwuxv"
|
||||
"v\xfb\"lgs\"kvjfywmut\x9cr"
|
||||
"merxdhj"
|
||||
"dwz"
|
||||
"d\\gkbqo\\fwukyxab\"u"
|
||||
"k\xd4cfixejvkicryipucwurq\x7eq"
|
||||
"nvtidemacj\"hppfopvpr"
|
||||
"kbngyfvvsdismznhar\\p\"\"gpryt\"jaeh"
|
||||
"khre\"o\x0elqfrbktzn"
|
||||
"nugkdmqwdq\x50amallrskmrxoyo"
|
||||
"jcrkptrsasjp\\\"cwigzynjgspxxv\\vyb"
|
||||
"ramf\"skhcmenhbpujbqwkltmplxygfcy"
|
||||
"aqjqgbfqaxga\\fkdcahlfi\"pvods"
|
||||
"pcrtfb"
|
||||
"\x83qg\"nwgugfmfpzlrvty\"ryoxm"
|
||||
"fvhvvokdnl\\eap"
|
||||
"kugdkrat"
|
||||
"seuxwc"
|
||||
"vhioftcosshaqtnz"
|
||||
"gzkxqrdq\\uko\"mrtst"
|
||||
"znjcomvy\x16hhsenmroswr"
|
||||
"clowmtra"
|
||||
"\xc4"
|
||||
"jpavsevmziklydtqqm"
|
||||
"egxjqytcttr\\ecfedmmovkyn\"m"
|
||||
"mjulrvqgmsvmwf"
|
||||
"o\\prxtlfbatxerhev\xf9hcl\x44rzmvklviv"
|
||||
"lregjexqaqgwloydxdsc\\o\"dnjfmjcu"
|
||||
"lnxluajtk\x8desue\\k\x7abhwokfhh"
|
||||
"wrssfvzzn\"llrysjgiu\"npjtdli"
|
||||
"\x67lwkks"
|
||||
"bifw\"ybvmwiyi\"vhol\"vol\xd4"
|
||||
"aywdqhvtvcpvbewtwuyxrix"
|
||||
"gc\xd3\"caukdgfdywj"
|
||||
"uczy\\fk"
|
||||
"bnlxkjvl\x7docehufkj\\\"qoyhag"
|
||||
"bidsptalmoicyorbv\\"
|
||||
"jorscv\"mufcvvfmcv\"ga"
|
||||
"sofpwfal\\a"
|
||||
"kcuqtbboaly\"uj\"k"
|
||||
"n\\c"
|
||||
"x\"\xcaj\\xwwvpdldz"
|
||||
"eyukphh"
|
||||
"wcyjq"
|
||||
"vjx\"\"hjroj\"l\x4cjwbr"
|
||||
"xcodsxzfqw\\rowqtuwvjnxupjnrh"
|
||||
"yc"
|
||||
"fpvzldgbdtca\"hqwa"
|
||||
"ymjq\x8ahohvafubra\"hgqoknkuyph"
|
||||
"kx\\mkaaklvcup"
|
||||
"belddrzegcsxsyfhzyz"
|
||||
"fuyswi"
|
||||
"\\hubzebo\"ha\\qyr\"dv\\"
|
||||
"mxvlz\"fwuvx\"cyk\""
|
||||
"ftbh\"ro\\tmcpnpvh\"xx"
|
||||
"ygi"
|
||||
"rw\"\"wwn\\fgbjumq\"vgvoh\xd0\"mm"
|
||||
"\"pat\"\x63kpfc\"\x2ckhfvxk\"uwqzlx"
|
||||
"o"
|
||||
"d\"hqtsfp\xceaswe\"\xc0lw"
|
||||
"zajpvfawqntvoveal\"\"trcdarjua"
|
||||
"xzapq"
|
||||
"rkmhm"
|
||||
"byuq"
|
||||
"rwwmt\xe8jg\xc2\"omt"
|
||||
"nfljgdmgefvlh\"x"
|
||||
"rpjxcexisualz"
|
||||
"doxcycmgaiptvd"
|
||||
"rq\\\"mohnjdf\\xv\\hrnosdtmvxot"
|
||||
"oqvbcenib\"uhy\\npjxg"
|
||||
"pkvgnm\\ruayuvpbpd"
|
||||
"kknmzpxqfbcdgng"
|
||||
"piduhbmaympxdexz"
|
||||
"vapczawekhoa\\or"
|
||||
"tlwn\"avc\"bycg\"\"xuxea"
|
||||
"\xcdvryveteqzxrgopmdmihkcgsuozips"
|
||||
"kpzziqt"
|
||||
"sdy\\s\"cjq"
|
||||
"yujs"
|
||||
"qte\"q"
|
||||
"qyvpnkhjcqjv\"cclvv\"pclgtg\xeak\"tno"
|
||||
"xwx"
|
||||
"vibuvv"
|
||||
"qq\""
|
||||
"wwjduomtbkbdtorhpyalxswisq\"r"
|
||||
"afuw\\mfjzctcivwesutxbk\"lk"
|
||||
"e\xcef\\hkiu"
|
||||
"ftdrgzvygcw\"jwsrcmgxj"
|
||||
"zrddqfkx\x21dr\"ju\"elybk\"powj\"\"kpryz"
|
||||
"dttdkfvbodkma\""
|
||||
"lzygktugpqw"
|
||||
"qu\x83tes\\u\"tnid\"ryuz"
|
||||
"\\o\"pe\\vqwlsizjklwrjofg\xe2oau\\rd"
|
||||
"mikevjzhnwgx\"fozrj\"h\""
|
||||
"ligxmxznzvtachvvbahnff"
|
||||
"d\\kq"
|
||||
"tnbkxpzmcakqhaa"
|
||||
"g\\yeakebeyv"
|
||||
"cqkcnd\"sxjxfnawy\x31zax\x6ceha"
|
||||
"m\x0dtqotffzdnetujtsgjqgwddc"
|
||||
"masnugb\"etgmxul\x3bqd\\tmtddnvcy"
|
||||
"floediikodfgre\x23wyoxlswxflwecdjpt"
|
||||
"zu"
|
||||
"r"
|
||||
"\"ashzdbd\"pdvba\xeeumkr\\amnj"
|
||||
"ckslmuwbtfouwpfwtuiqmeozgspwnhx"
|
||||
"t\\qjsjek\xf9gjcxsyco\"r"
|
||||
"hoed\x1b\\tcmaqch\"epdy"
|
||||
"mgjiojwzc\\ypqcn\xb1njmp\"aeeblxt"
|
||||
"\xdf\"h\x5enfracj"
|
||||
"\x6fpbpocrb"
|
||||
"jbmhrswyyq\\"
|
||||
"wtyqtenfwatji\"ls\\"
|
||||
"voy"
|
||||
"awj"
|
||||
"rtbj\"j"
|
||||
"hynl"
|
||||
"orqqeuaat\\xu\\havsgr\xc5qdk"
|
||||
"g\"npyzjfq\"rjefwsk"
|
||||
"rk\\kkcirjbixr\\zelndx\"bsnqvqj\""
|
||||
"tecoz"
|
||||
"dn\"uswngbdk\""
|
||||
"qb\\"
|
||||
"wpyis\\ebq"
|
||||
"ppwue\\airoxzjjdqbvyurhaabetv"
|
||||
"fxlvt"
|
||||
"ql\"oqsmsvpxcg\"k"
|
||||
"vqlhuec\\adw"
|
||||
"qzmi\xffberakqqkk"
|
||||
"tisjqff\"wf"
|
||||
"yhnpudoaybwucvppj"
|
||||
"xhfuf\\ehsrhsnfxcwtibd\"ubfpz"
|
||||
"ihgjquzhf\""
|
||||
"ff\x66dsupesrnusrtqnywoqcn\\"
|
||||
"z\x77zpubbjmd"
|
||||
"\"vhzlbwq\"xeimjt\\xe\x85umho\"m\"\"bmy"
|
||||
"mmuvkioocmzjjysi\"mkfbec\""
|
||||
"rpgghowbduw\x2fayslubajinoik\xd0hcfy"
|
||||
"xrkyjqul\xdexlojgdphczp\"jfk"
|
||||
"mg\x07cnr\x8b\x67xdgszmgiktpjhawho"
|
||||
"kdgufhaoab"
|
||||
"rlhela\"nldr"
|
||||
"wzye\x87u"
|
||||
"yif\x75bjhnitgoarmfgqwpmopu"
|
||||
"pvlbyez\"wyy\x3dpgr"
|
||||
"ezdm\"ovkruthkvdwtqwr\"ibdoawzgu"
|
||||
"qubp"
|
||||
"b\\kcpegcn\\zgdemgorjnk"
|
||||
"gjsva\\kzaor\"\"gtpd"
|
||||
"\"kt"
|
||||
"rlymwlcodix"
|
||||
"qqtmswowxca\"jvv"
|
||||
"jni\xebwhozb"
|
||||
"zhino\"kzjtmgxpi\"zzexijg"
|
||||
"tyrbat\\mejgzplufxixkyg"
|
||||
"lhmopxiao\x09\"p\xebl"
|
||||
"xefioorxvate"
|
||||
"nmcgd\x46xfujt\"w"
|
||||
"\xe3wnwpat\"gtimrb"
|
||||
"wpq\"xkjuw\xebbohgcagppb"
|
||||
"fmvpwaca"
|
||||
"mlsw"
|
||||
"fdan\\\x9e"
|
||||
"\"f\"fmdlzc"
|
||||
"nyuj\\jnnfzdnrqmhvjrahlvzl"
|
||||
"zn\"f\xcfsshcdaukkimfwk"
|
||||
"uayugezzo\\\"e\"blnrgjaupqhik"
|
||||
"efd\"apkndelkuvfvwyyatyttkehc"
|
||||
"ufxq\\\"m\"bwkh\x93kapbqrvxxzbzp\\"
|
||||
"fgypsbgjak\x79qblbeidavqtddfacq\\i\"h"
|
||||
"kcfgpiysdxlgejjvgndb\\dovfpqodw"
|
||||
"\"onpqnssmighipuqgwx\"nrokzgvg"
|
||||
"vhjrrhfrba\"jebdanzsrdusut\\wbs"
|
||||
"o\xdakymbaxakys"
|
||||
"uwxhhzz\\mtmhghjn\\\\tnhzbejj"
|
||||
"yd\\"
|
||||
"bpgztp\\lzwpdqju\"it\x35qjhihjv"
|
||||
"\\my\\b\"klnnto\\\xb3mbtsh"
|
||||
"ezyvknv\"l\x2bdhhfjcvwzhjgmhwbqd\"\\"
|
||||
"ftkz\"amoncbsohtaumhl\"wsodemopodq"
|
||||
"ifv"
|
||||
"dmzfxvzq"
|
||||
"sped\"bvmf\"mmevl\"zydannpfny"
|
||||
"fjxcjwlv\"pnqyrzatsjwsqfidb"
|
||||
"muc\xfdqouwwnmuixru\\zlhjintplvtee"
|
||||
"mraqgvmj"
|
||||
"njopq\"ftcsryo"
|
||||
"enoh\"n"
|
||||
"t\"ntjhjc\"nzqh\xf7dcohhlsja\x7dtr"
|
||||
"flbqcmcoun"
|
||||
"dxkiysrn\\dyuqoaig"
|
||||
"nehkzi\"h\"syktzfufotng\xdafqo"
|
||||
"dzkjg\\hqjk\\\"zfegssjhn"
|
||||
"sadlsjv"
|
||||
"vmfnrdb\""
|
||||
"ac\\bdp\"n"
|
||||
"qt\x89h"
|
||||
"lsndeugwvijwde\\vjapbm\\k\\nljuva"
|
||||
"twpmltdzyynqt\\z\\tnund\x64hm"
|
||||
"hpcyata\"ocylbkzdnhujh"
|
||||
"hskzq\"knntuhscex\"q\\y\\vqj\x3an"
|
||||
"eekwyufvji\\mqgeroekxeyrmymq"
|
||||
"hl\"durthetvri\xebw\\jxu\"rcmiuy"
|
||||
"\"fxdnmvnftxwesmvvq\"sjnf\xaabpg\"iary"
|
||||
"\"\"nksqso"
|
||||
"ruq\xbezugge\"d\"hwvoxmy\"iawikddxn\"x"
|
||||
"rxxnlfay"
|
||||
"stcu\"mv\xabcqts\\fasff"
|
||||
"yrnvwfkfuzuoysfdzl\x02bk"
|
||||
"qbdsmlwdbfknivtwijbwtatqfe"
|
||||
"\"erqh\\csjph"
|
||||
"ikfv"
|
||||
"\xd2cuhowmtsxepzsivsvnvsb"
|
||||
"vj"
|
||||
"d"
|
||||
"\\g"
|
||||
"porvg\x62qghorthnc\"\\"
|
||||
"tiks\\kr\"\x0fuejvuxzswnwdjscrk"
|
||||
"xmgfel\"atma\\zaxmlgfjx\"ajmqf"
|
||||
"oz\\rnxwljc\\\"umhymtwh"
|
||||
"wlsxxhm\x7fqx\\gjoyrvccfiner\\qloluqv"
|
||||
"k\\ieq"
|
||||
"xidjj\"ksnlgnwxlddf\\s\\kuuleb"
|
||||
"wjpnzgprzv\\maub\x0cj"
|
||||
"r"
|
||||
"y"
|
||||
"\"yecqiei\"ire\\jdhlnnlde\xc5u"
|
||||
"drvdiycqib"
|
||||
"egnrbefezcrhgldrtb"
|
||||
"plqodxv\\zm\"uodwjdocri\x55ucaezutm"
|
||||
"f\"wexcw\x02ekewx\"alyzn"
|
||||
"pqajwuk\\\\oatkfqdyspnrupo"
|
||||
"rkczj\"fzntabpnygrhamk\\km\x68xfkmr"
|
||||
"wejam\xbac\x37kns"
|
||||
"qqmlwjk\"gh"
|
||||
"fdcjsxlgx"
|
||||
"\\cxvxy\"kb\"\"unubvrsq\\y\\awfhbmarj\\"
|
||||
"geunceaqr"
|
||||
"tpkg\"svvngk\\sizlsyaqwf"
|
||||
"\"pa\\x\x18od\\emgje\\"
|
||||
"ffiizogjjptubzqfuh\"cctieqcdh"
|
||||
"yikhiyyrpgglpos"
|
||||
"h\\"
|
||||
"jotqojodcv"
|
||||
"ervsz\x87ade\"fevq\\tcqowt"
|
||||
"\\y\"fgrxtppkcseeg\\onxjarx\\hyhfn\x5fi"
|
||||
"kxndlabn\\wwumctuzdcfiitrbnn"
|
||||
"eoosynwhwm"
|
||||
"\"c\x04"
|
||||
"ny\xf6vuwlec"
|
||||
"ubgxxcvnltzaucrzg\\xcez"
|
||||
"pnocjvo\\yt"
|
||||
"fcabrtqog\"a\"zj"
|
||||
"o\\bha\\mzxmrfltnflv\xea"
|
||||
"tbfvzwhexsdxjmxejwqqngzixcx"
|
||||
"wdptrakok\"rgymturdmwfiwu"
|
||||
"reffmj"
|
||||
"lqm"
|
||||
"\\oc"
|
||||
"p\""
|
||||
"ygkdnhcuehlx"
|
||||
"vsqmv\"bqay\"olimtkewedzm"
|
||||
"isos\x6azbnkojhxoopzetbj\xe1yd"
|
||||
"yo\\pgayjcyhshztnbdv"
|
||||
"fg\"h"
|
||||
"vcmcojolfcf\\\\oxveua"
|
||||
"w\"vyszhbrr\"jpeddpnrjlca\x69bdbopd\\z"
|
||||
"jikeqv"
|
||||
"\"dkjdfrtj"
|
||||
"is"
|
||||
"hgzx"
|
||||
"z\""
|
||||
"woubquq\\ag\""
|
||||
"xvclriqa\xe6ltt"
|
||||
"tfxinifmd"
|
||||
"mvywzf\"jz"
|
||||
"vlle"
|
||||
"c\"rf\"wynhye\x25vccvb\""
|
||||
"zvuxm"
|
||||
"\xf2\"jdstiwqer\"h"
|
||||
"kyogyogcknbzv\x9f\\\\e"
|
||||
"kspodj\"edpeqgypc"
|
||||
"oh\\x\\h"
|
||||
"julb"
|
||||
"bmcfkidxyilgoy\\xmu\"ig\\qg"
|
||||
"veqww\"ea"
|
||||
"fkdbemtgtkpqisrwlxutllxc\"mbelhs"
|
||||
"e"
|
||||
"ecn\x50ooprbstnq"
|
||||
"\"\xe8\"ec\xeah\"qo\\g\"iuqxy\"e\"y\xe7xk\xc6d"
|
||||
"lwj\"aftrcqj"
|
||||
"jduij\x97zk\"rftjrixzgscxxllpqx\"bwwb"
|
||||
"fqcditz"
|
||||
"f\x19azclj\"rsvaokgvty\"aeq"
|
||||
"erse\x9etmzhlmhy\x67yftoti"
|
||||
"lsdw\xb3dmiy\\od"
|
||||
"x\x6fxbljsjdgd\xaau"
|
||||
"hjg\\w\"\x78uoqbsdikbjxpip\"w\"jnhzec"
|
||||
"gk"
|
||||
"\\zrs\\syur"
|
16
lib/Glib.js
16
lib/Glib.js
|
@ -3,6 +3,12 @@ const Math = require('./bnmath');
|
|||
const EMPTY = Symbol('empty');
|
||||
|
||||
class Glib {
|
||||
// NB: this assumes all inputs are iterable
|
||||
static concat(...args) {
|
||||
return Glib.fromIterable(args).flatMap((i) => {
|
||||
return i;
|
||||
});
|
||||
}
|
||||
static infiniteFromIterable(iterable) {
|
||||
const cache = Array.from(iterable);
|
||||
return new Glib(
|
||||
|
@ -260,6 +266,16 @@ class Glib {
|
|||
return true;
|
||||
});
|
||||
}
|
||||
skip(n = 1n) {
|
||||
return this.filter((_, i) => i >= n);
|
||||
}
|
||||
drop(n = 1n) {
|
||||
return this.filter((_, i) => i >= n);
|
||||
}
|
||||
// NB: this assumes all inputs are iterable
|
||||
concat(...iterables) {
|
||||
return Glib.concat(this, ...iterables);
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this._;
|
||||
}
|
||||
|
|
|
@ -49,3 +49,7 @@ Array.prototype.safeSort = function safeSort(...args) {
|
|||
clone.sort(...args);
|
||||
return clone;
|
||||
};
|
||||
|
||||
Array.prototype.sortInts = function sortInts() {
|
||||
return this.safeSort((a, b) => (a < b ? -1 : 1));
|
||||
};
|
||||
|
|
|
@ -24,6 +24,11 @@ Object.defineProperty(Map.prototype, 'glibValues', {
|
|||
},
|
||||
});
|
||||
|
||||
Map.prototype.update = function update(key, updateFn) {
|
||||
this.set(key, updateFn(this.get(key), key));
|
||||
return this;
|
||||
};
|
||||
|
||||
const _getPath = (map, path) => {
|
||||
for (const component of path) {
|
||||
if (!map.has(component)) {
|
||||
|
|
|
@ -12,10 +12,13 @@ const DIRECTIONS = {
|
|||
|
||||
class Rectangle {
|
||||
static fromPoints(one, two) {
|
||||
const [x1, x2] = [one.v[0], two.v[0]].sort();
|
||||
const [y1, y2] = [one.v[1], two.v[1]].sort();
|
||||
const [x1, x2] = [one.v[0], two.v[0]].sortInts();
|
||||
const [y1, y2] = [one.v[1], two.v[1]].sortInts();
|
||||
const bottomLeft = new Vector(x1, y1);
|
||||
const size = bottomLeft.multiply(-1).add(new Vector(x2, y2));
|
||||
const size = bottomLeft
|
||||
.multiply(-1)
|
||||
.add(new Vector(x2, y2))
|
||||
.add(1n);
|
||||
return new Rectangle(bottomLeft, size);
|
||||
}
|
||||
constructor(offset, size) {
|
||||
|
@ -37,6 +40,12 @@ class Rectangle {
|
|||
})(this),
|
||||
);
|
||||
}
|
||||
get bottomLeft() {
|
||||
return this.offset;
|
||||
}
|
||||
get topRight() {
|
||||
return this.offset.add(this.size);
|
||||
}
|
||||
}
|
||||
|
||||
class Instruction {
|
||||
|
|
74
solutions/2015/6.js
Normal file
74
solutions/2015/6.js
Normal file
|
@ -0,0 +1,74 @@
|
|||
const { Glib, Vector, twodee } = require('../../lib');
|
||||
|
||||
const COMMANDS = {
|
||||
TURN_ON: Symbol('TURN_ON'),
|
||||
TURN_OFF: Symbol('TURN_OFF'),
|
||||
TOGGLE: Symbol('TOGGLE'),
|
||||
};
|
||||
|
||||
const cmd = new Map([
|
||||
['turn on', COMMANDS.TURN_ON],
|
||||
['turn off', COMMANDS.TURN_OFF],
|
||||
['toggle', COMMANDS.TOGGLE],
|
||||
]);
|
||||
|
||||
const parse = (input) =>
|
||||
Glib.fromLines(input).map((l) => {
|
||||
const [
|
||||
str,
|
||||
command,
|
||||
pt1,
|
||||
pt2,
|
||||
] = /^([^\d]+)(\d+,\d+) through (\d+,\d+)$/.exec(l);
|
||||
|
||||
return [
|
||||
cmd.get(command.trim()),
|
||||
twodee.Rectangle.fromPoints(
|
||||
Vector.fromString(`(${pt1})`),
|
||||
Vector.fromString(`(${pt2})`),
|
||||
),
|
||||
];
|
||||
});
|
||||
|
||||
const ops1 = {
|
||||
[COMMANDS.TURN_ON](map, pt) {
|
||||
map.set(pt, 1n);
|
||||
},
|
||||
[COMMANDS.TURN_OFF](map, pt) {
|
||||
map.set(pt, 0n);
|
||||
},
|
||||
[COMMANDS.TOGGLE](map, pt) {
|
||||
map.update(pt, (v = 0n) => (v === 0n ? 1n : 0n));
|
||||
},
|
||||
};
|
||||
|
||||
const ops2 = {
|
||||
[COMMANDS.TURN_ON](map, pt) {
|
||||
map.update(pt, (v = 0n) => v + 1n);
|
||||
},
|
||||
[COMMANDS.TURN_OFF](map, pt) {
|
||||
map.update(pt, (v = 0n) => (v <= 1n ? 0n : v - 1n));
|
||||
},
|
||||
[COMMANDS.TOGGLE](map, pt) {
|
||||
map.update(pt, (v = 0n) => v + 2n);
|
||||
},
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
'1': (input) =>
|
||||
parse(input)
|
||||
.reduce((acc, [cmd, rect]) => {
|
||||
// console.log(cmd, pt1.string, pt2.string);
|
||||
rect.allPoints().forEach((pt) => ops1[cmd](acc, pt.string));
|
||||
return acc;
|
||||
}, new Map())
|
||||
.glibValues.sum(),
|
||||
'2': (input) =>
|
||||
parse(input)
|
||||
.reduce((acc, [cmd, rect]) => {
|
||||
// console.log(cmd, pt1.string, pt2.string);
|
||||
rect.allPoints().forEach((pt) => ops2[cmd](acc, pt.string));
|
||||
return acc;
|
||||
}, new Map())
|
||||
.glibValues.sum(),
|
||||
};
|
83
solutions/2015/7.js
Normal file
83
solutions/2015/7.js
Normal file
|
@ -0,0 +1,83 @@
|
|||
const { Glib, fn } = require('../../lib');
|
||||
|
||||
const COMMANDS = {
|
||||
AND: Symbol('AND'),
|
||||
OR: Symbol('OR'),
|
||||
LSHIFT: Symbol('LSHIFT'),
|
||||
RSHIFT: Symbol('RSHIFT'),
|
||||
NOT: Symbol('NOT'),
|
||||
_NO_OP: Symbol('_NO_OP'),
|
||||
};
|
||||
|
||||
const NO_OP = /^(\w+|\d+) -> (\w+)/;
|
||||
const UNARY_OP = /^(\w+) (\w+) -> (\w+)/;
|
||||
const BINARY_OP = /^(\w+) (\w+) (\w+|\d+) -> (\w+)$/;
|
||||
|
||||
const parse = (input) =>
|
||||
Glib.fromLines(input)
|
||||
.map((l) => {
|
||||
if (l.match(NO_OP)) {
|
||||
const [str, value, target] = NO_OP.exec(l);
|
||||
return [target, { command: COMMANDS._NO_OP, args: [value] }];
|
||||
}
|
||||
|
||||
if (l.match(UNARY_OP)) {
|
||||
const [str, cmd, input, target] = UNARY_OP.exec(l);
|
||||
return [target, { command: COMMANDS[cmd], args: [input] }];
|
||||
}
|
||||
|
||||
if (l.match(BINARY_OP)) {
|
||||
const [str, left, cmd, right, target] = BINARY_OP.exec(l);
|
||||
return [target, { command: COMMANDS[cmd], args: [left, right] }];
|
||||
}
|
||||
|
||||
throw new Error('unable to parse');
|
||||
})
|
||||
.toMap();
|
||||
|
||||
const ops = {
|
||||
[COMMANDS.AND](lookup, l, r) {
|
||||
return lookup(l) & lookup(r);
|
||||
},
|
||||
[COMMANDS.OR](lookup, l, r) {
|
||||
return lookup(l) | lookup(r);
|
||||
},
|
||||
[COMMANDS.LSHIFT](lookup, l, r) {
|
||||
return lookup(l) << BigInt(r);
|
||||
},
|
||||
[COMMANDS.RSHIFT](lookup, l, r) {
|
||||
return lookup(l) >> BigInt(r);
|
||||
},
|
||||
[COMMANDS.NOT](lookup, v) {
|
||||
return lookup(v) ^ 65535n;
|
||||
},
|
||||
[COMMANDS._NO_OP](lookup, v) {
|
||||
return lookup(v);
|
||||
},
|
||||
};
|
||||
|
||||
const makeLookup = (input) => {
|
||||
const lookup = fn.memo((v) => {
|
||||
if (v.match(/^\d+$/)) {
|
||||
return BigInt(v);
|
||||
}
|
||||
if (!input.has(v)) {
|
||||
throw new Error('invalid lookup');
|
||||
}
|
||||
const { command, args } = input.get(v);
|
||||
return ops[command](lookup, ...args);
|
||||
});
|
||||
return lookup;
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
'1': (input) => {
|
||||
return makeLookup(parse(input))('a');
|
||||
},
|
||||
'2': (input) => {
|
||||
input = parse(input);
|
||||
const override = makeLookup(input)('a');
|
||||
input.set('b', { command: COMMANDS._NO_OP, args: [override.toString(10)] });
|
||||
return makeLookup(input)('a');
|
||||
},
|
||||
};
|
84
solutions/2015/8.js
Normal file
84
solutions/2015/8.js
Normal file
|
@ -0,0 +1,84 @@
|
|||
const { Glib, fn } = require('../../lib');
|
||||
|
||||
const MODES = {
|
||||
NORMAL: Symbol('normal'),
|
||||
ESCAPE: Symbol('escape'),
|
||||
HEX: Symbol('hex'),
|
||||
};
|
||||
|
||||
const BACKSLASH = '\\';
|
||||
const QUOTE = '"';
|
||||
const X = 'x';
|
||||
|
||||
const decode = (input) => {
|
||||
let mode = MODES.NORMAL;
|
||||
let storage = null;
|
||||
return Glib.fromIterable(input).flatMap((char) => {
|
||||
switch (mode) {
|
||||
case MODES.NORMAL:
|
||||
switch (char) {
|
||||
case QUOTE:
|
||||
return [];
|
||||
case BACKSLASH:
|
||||
mode = MODES.ESCAPE;
|
||||
return [];
|
||||
default:
|
||||
return [char];
|
||||
}
|
||||
case MODES.ESCAPE:
|
||||
switch (char) {
|
||||
case BACKSLASH:
|
||||
mode = MODES.NORMAL;
|
||||
return [BACKSLASH];
|
||||
case QUOTE:
|
||||
mode = MODES.NORMAL;
|
||||
return [QUOTE];
|
||||
case X:
|
||||
mode = MODES.HEX;
|
||||
return [];
|
||||
default:
|
||||
console.log(char);
|
||||
throw new Error('invalid escape');
|
||||
}
|
||||
case MODES.HEX:
|
||||
if (storage == null) {
|
||||
storage = char;
|
||||
return [];
|
||||
} else {
|
||||
char = String.fromCharCode(parseInt(`${storage}${char}`, 16));
|
||||
storage = null;
|
||||
mode = MODES.NORMAL;
|
||||
return [char];
|
||||
}
|
||||
default:
|
||||
throw new Error('bad mode');
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const encode = (input) =>
|
||||
Glib.concat(
|
||||
QUOTE,
|
||||
Glib.fromIterable(input).flatMap((char) => {
|
||||
switch (char) {
|
||||
case QUOTE:
|
||||
return [BACKSLASH, QUOTE];
|
||||
case BACKSLASH:
|
||||
return [BACKSLASH, BACKSLASH];
|
||||
default:
|
||||
return [char];
|
||||
}
|
||||
}),
|
||||
QUOTE,
|
||||
);
|
||||
|
||||
module.exports = {
|
||||
'1': (input) =>
|
||||
Glib.fromLines(input)
|
||||
.map((i) => BigInt(i.length) - decode(i).length)
|
||||
.sum(),
|
||||
'2': (input) =>
|
||||
Glib.fromLines(input)
|
||||
.map((i) => encode(i).length - BigInt(i.length))
|
||||
.sum(),
|
||||
};
|
|
@ -55,8 +55,9 @@ const results = {
|
|||
// slow
|
||||
4: [117946, 3938038],
|
||||
5: [238, 69],
|
||||
// todo:
|
||||
// 6: [377891, 14110788],
|
||||
6: [377891, 14110788],
|
||||
7: [3176, 14710],
|
||||
8: [1342, 2074],
|
||||
},
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue