Initial commit
This commit is contained in:
commit
f242d2b0df
420 changed files with 62521 additions and 0 deletions
4
2018/day02/day02.dyalog
Normal file
4
2018/day02/day02.dyalog
Normal file
|
@ -0,0 +1,4 @@
|
|||
⎕IO←0
|
||||
x←⊃⎕nget'input.txt'1
|
||||
×/+/2 3∘.∊{≢⍵}⌸¨x
|
||||
⊃x/⍨+/1=x∘.{+/⍺≠⍵}x
|
39
2018/day02/day02.ss
Normal file
39
2018/day02/day02.ss
Normal file
|
@ -0,0 +1,39 @@
|
|||
(import :gerbil/gambit/ports)
|
||||
|
||||
(export main)
|
||||
|
||||
(def (unique-counts l)
|
||||
(def hash (make-hash-table))
|
||||
(for-each (lambda (x) (hash-update! hash x 1+ 0)) l)
|
||||
(hash-values hash))
|
||||
|
||||
(def (checksum l)
|
||||
(let ((twice (length (filter (lambda (x) (memq 2 (unique-counts x))) l)))
|
||||
(thrice (length (filter (lambda (x) (memq 3 (unique-counts x))) l))))
|
||||
(* twice thrice)))
|
||||
|
||||
(def (similarity id1 id2)
|
||||
(apply +
|
||||
(map (lambda (x y) (if (eq? x y) 0 1)) id1 id2)))
|
||||
|
||||
(def (find-similar id id-list)
|
||||
(filter (lambda (x) (eq? 1 (similarity id x))) id-list))
|
||||
|
||||
(def (intersection id1 id2)
|
||||
(reverse (foldl (lambda (x y acc) (if (eq? x y) (cons x acc) acc)) [] id1 id2)))
|
||||
|
||||
(def (main . args)
|
||||
(def ids (call-with-input-file "input.txt" (lambda (p) (read-all p read-line))))
|
||||
(displayln (checksum (map string->list ids)))
|
||||
|
||||
(def common
|
||||
(let/cc exit
|
||||
(foldl
|
||||
(lambda (id acc)
|
||||
(let ((similar (find-similar id acc)))
|
||||
(if (< 0 (length similar))
|
||||
(exit (intersection id (car similar)))
|
||||
(cons id acc))))
|
||||
[]
|
||||
(map string->list ids))))
|
||||
(displayln (list->string common)))
|
250
2018/day02/input.txt
Normal file
250
2018/day02/input.txt
Normal file
|
@ -0,0 +1,250 @@
|
|||
ubkfmdjxyzlbgkrotcepvswaqx
|
||||
uikfmdkuyzlbgerotcepvswaqh
|
||||
uikfmdpxyzlbgnrotcepvswoeh
|
||||
nikfmdjxyzlbgnrotqepvswyqh
|
||||
qgkfmdjxyzlbgnmotcepvswaqh
|
||||
uikfmdjxyzqbgnrytcepvsbaqh
|
||||
uikfmdjxyzibgprotcecvswaqh
|
||||
uikfmajxyzlcgnrojcepvswaqh
|
||||
uvkfsdjxyzlbgnrotcepvjwaqh
|
||||
uikfmdjxfzlbggrotcepvswawh
|
||||
uikfmhjxyzlbgnuotcepvjwaqh
|
||||
uikfmdjxyzlbuzcotcepvswaqh
|
||||
uikfmdwxyzlbgnrotcepvfwamh
|
||||
uikfmdexyzlbgnroecepvswhqh
|
||||
uikfmdjuyzlbgnrotcqpvswafh
|
||||
uikfddjxyzvbgnrotceppswaqh
|
||||
yikfwdjxyzlbgnrotcepvswagh
|
||||
uiktmdjxyzlbgnrotceposwajh
|
||||
uikfmdsxyzlbgnroteetvswaqh
|
||||
uikfpdjxyzlbgnroncepvswuqh
|
||||
uikfmtjxyzlbgurotcepvswaoh
|
||||
eikfmdjxyjlbgnrotcepyswaqh
|
||||
uikfkdjxyzlbgnrotcepvszaqv
|
||||
uikfrdjxtwlbgnrotcepvswaqh
|
||||
uikfmdjxyzlbgnrotpepwswahh
|
||||
kikfmdjxyzlbgnkotcepvswqqh
|
||||
uikfkduxyzlbgnrotcepvswafh
|
||||
uikfxhjxyzlbgnrotcegvswaqh
|
||||
uikfmdjxyzlmgnrotcenvawaqh
|
||||
uzkfmddxyzlbgnrltcepvswaqh
|
||||
uikfmdjxyzlbgnrobcepisqaqh
|
||||
uijfmdjxyzlbgnrotcexvrwaqh
|
||||
uiwjmdjxyzlbgnrotceprswaqh
|
||||
uhkqmdjxwzlbgnrotcepvswaqh
|
||||
uiktmsjxyzwbgnrotcepvswaqh
|
||||
uikfmdjxyztbgnqotcepvswcqh
|
||||
uibfmdjxyzlbgnroqcepvswaqx
|
||||
uwkfmdjxyxlbgnrotcfpvswaqh
|
||||
uikumdjxyzlbgnrstceposwaqh
|
||||
uikfzdjxyznhgnrotcepvswaqh
|
||||
uikuydjxyzlbgnrotqepvswaqh
|
||||
uikfmdqxyzlbgnrotfefvswaqh
|
||||
yikfmdjxyzlbrnrqtcepvswaqh
|
||||
uiifmdjxyzlbenrotcfpvswaqh
|
||||
uxkjmdjxyzlbgnrotcmpvswaqh
|
||||
uikgmdjxyzlbgnrotceovlwaqh
|
||||
uikfmdjxyzvbgzrotcenvswaqh
|
||||
uiufmdjxyzlbgnrotceposwazh
|
||||
uiafmdjxyzlignmotcepvswaqh
|
||||
uikfmdjxyzwbgnsotlepvswaqh
|
||||
uikjmdjvyzlbgnrotcenvswaqh
|
||||
uikfmdjxyzlbonroteepvswaqi
|
||||
uikfmdjxyzldgnroxcepviwaqh
|
||||
uikvmdjxyzlbgdrotrepvswaqh
|
||||
uikfmdjyyzwbgnrotcepvzwaqh
|
||||
uikfmdjxyzzbnnvotcepvswaqh
|
||||
uikomdjxyzlbgnrotcepvuwhqh
|
||||
uikfmmjxyzbbgnrotcepvswayh
|
||||
uikfmdjfezlbgprotcepvswaqh
|
||||
uzkfmojxmzlbgnrotcepvswaqh
|
||||
uipfmdjxyzlbgnrotceyuswaqh
|
||||
uikfmdjxyzlkgnmotcepvswadh
|
||||
uikfmdjxyzlbgnuctcbpvswaqh
|
||||
uikfqdjxyzlbogrotcepvswaqh
|
||||
uikfmdjxyzlfynrotcepvswash
|
||||
uikfmdjxizzmgnrotcepvswaqh
|
||||
uhkfmdjxyzlbhnrotcenvswaqh
|
||||
uipfmdjxyzlbgorotcepfswaqh
|
||||
uikfmdjxyznbgnrotcepvswfah
|
||||
uikfmujxyzlbgnrotnepvssaqh
|
||||
uikfmdjxyzlxgnrotcepvsrwqh
|
||||
uikfmdjxszlbgnrottvpvswaqh
|
||||
umkfmdskyzlbgnrotcepvswaqh
|
||||
uikfmdjxyzlbgorotcwpzswaqh
|
||||
uikfmdhxyzzbgnzotcepvswaqh
|
||||
jikfmdjxyzlbgnrotcepveyaqh
|
||||
uirfmdlxyzlbgnjotcepvswaqh
|
||||
uikfmdjxyzlbgnrorxepvswazh
|
||||
uikfmdjxyzltgnrotcepvsxaqi
|
||||
uikfmdjxyzlbxlrotcepkswaqh
|
||||
uvkfmdjxyzlbgnrotcopvswxqh
|
||||
uxkfmdjxkzlbgnrotcepvswqqh
|
||||
uikfmdjxyzlbqnrotcepvhwrqh
|
||||
uikfmdjxyzlvgnrolcepvswrqh
|
||||
urkfmdixyzlbgnrotcepvsjaqh
|
||||
uikfmdjxymlbsnrotcepvswcqh
|
||||
uikfmdjxyilbgnrotcepvcwzqh
|
||||
uikfadjxlzlbgnrotcepvswaql
|
||||
uikfmdjxuzlbgdrotcgpvswaqh
|
||||
yikfmdgxyzlbgnrotcepvswarh
|
||||
uikfmdjxyzlbgorotcepcswaqv
|
||||
uikkmdjxyzlbvnrotcepvvwaqh
|
||||
uwzfmdjxyxlbgnrotcfpvswaqh
|
||||
uikfmdjxyztbgnrotcrtvswaqh
|
||||
uiufmdjxyzhbgnrotcupvswaqh
|
||||
uikfzdjcyzlbgnrotcfpvswaqh
|
||||
uipfmdjxyzlbgnrotavpvswaqh
|
||||
uikfmajxyzlbgnrotcepbsxaqh
|
||||
uikfmdjfyzlbgnrotbepvswmqh
|
||||
gikkmdjxyzlbgnrptcepvswaqh
|
||||
uikfmdjxqvlbgnrotsepvswaqh
|
||||
fikfmdjxyzlbgnrotcegvswoqh
|
||||
idkfmdjxyzlbgnrotcepwswaqh
|
||||
uikfmdqxyzlbmnrobcepvswaqh
|
||||
uikfmdjxyzpbgnroicepvsyaqh
|
||||
uikfmkoxyzlbgnrotcgpvswaqh
|
||||
unkfmdjxyzlbpnrolcepvswaqh
|
||||
uikfmdjmyzlbgfrotcupvswaqh
|
||||
ujkfmdjxynlbgnroteepvswaqh
|
||||
uikfmljxyzlbgnaotcepvsiaqh
|
||||
uikfmdjdyzlbgnrotcepvtwaqd
|
||||
uikfmdjxyzlbgnyotcepimwaqh
|
||||
uikfmdjxyzfbjnrotcepvxwaqh
|
||||
eiwfmdjxyzlbgnrdtcepvswaqh
|
||||
umkhmdjxyzlbgnrotceivswaqh
|
||||
uikfmdjxyzlbgnrotcwpvswneh
|
||||
uckfmdjxyzlbknrotcepvswauh
|
||||
uiofmdjoyzlbgnrbtcepvswaqh
|
||||
uikfmdbxyzlbgnrotcepaslaqh
|
||||
uimfmdjxyalbgnrotcepvswaxh
|
||||
uqkfmdjxyzlbwnrotcepmswaqh
|
||||
uiyfmdjxyzlbgnrotcepvswxuh
|
||||
uikfmdjxyzlbgmrotgepvswamh
|
||||
uikfmdjxyqlbgarozcepvswaqh
|
||||
uikfmdjxyzabanpotcepvswaqh
|
||||
uikfmdjgyzlbsnrotcepvswaqj
|
||||
uikfmdjxyzlbwnrottepvsvaqh
|
||||
uikfmdjxyzlbbnrotcepvofaqh
|
||||
uikfudjxyzlbgnustcepvswaqh
|
||||
cskfmqjxyzlbgnrotcepvswaqh
|
||||
uiwfmddxyzlbgnrotccpvswaqh
|
||||
eikpmdjxyzlbgnrotcesvswaqh
|
||||
uikfmdzxyzlngnrrtcepvswaqh
|
||||
uikfmdjxyzlbgnrotcepaswtph
|
||||
uirfmdjxyzlbgnrotcepvswsqe
|
||||
uikjmdjxqzlbgirotcepvswaqh
|
||||
uikfmdjxsllbknrotcepvswaqh
|
||||
uikfmdjxyqlbgcrotcepvswaqu
|
||||
uikfmdjsymlbgnrotcebvswaqh
|
||||
uikfmdjxezlbgnroccepviwaqh
|
||||
uikfmdjiyzjbgnrotcepvswarh
|
||||
uqkfmdjxyzmbgnrotcepvslaqh
|
||||
unkfmdjxyzlbinrotceplswaqh
|
||||
uikfmdjxyzpbgnrjtcedvswaqh
|
||||
uicfmdjxyzlbgrrotcepvswamh
|
||||
ukknmdjxyzlbgnqotcepvswaqh
|
||||
uikfudjxyzlbdnrztcepvswaqh
|
||||
uikfmdjxyzlbgnrozcepvswawk
|
||||
uikfmduxyzsbgnrotcepvswauh
|
||||
uikfmdjxyzljbnrotcenvswaqh
|
||||
uukfmdjxyzlbgnrotcckvswaqh
|
||||
uilfldjxyzlbgnrotcdpvswaqh
|
||||
uckfmdjxyvybgnrotcepvswaqh
|
||||
qikfmdjxyglbgnrotcepvrwaqh
|
||||
uikfmhjxyzltgnrotcepvswbqh
|
||||
uikfmdjxipabgnrotcepvswaqh
|
||||
uikfmdjxyzlbgnrotceovswanl
|
||||
uikfmdjxyzlbgirotcapvswahh
|
||||
uikfucjxyflbgnrotcepvswaqh
|
||||
pikfmdjxyzpbgnrotcepvswaeh
|
||||
uikfmdjiyylbgnrotcervswaqh
|
||||
uikfmdjgyzlbgnrotcaevswaqh
|
||||
uikvmdjxyzlbunrotcepvswarh
|
||||
uikfadjuyzpbgnrotcepvswaqh
|
||||
uikfmdjxyzlbgnrotcepsawaqj
|
||||
eikfmdjxyflbgnrotcepvswaeh
|
||||
uisfmdaxyzlbgnrotcepvswlqh
|
||||
vikfmdjxyzlzgnrotcepvswanh
|
||||
ukkfmdoxyzlbgnrotcewvswaqh
|
||||
uikfmdhxyzlbgnrotcrpvbwaqh
|
||||
uhkfmdjwezlbgnrotcepvswaqh
|
||||
uikfddjxyzlbgnroteepvpwaqh
|
||||
uikfmdjxczlbgncotiepvswaqh
|
||||
uikfvdjxyzlbgnrotcnpvsaaqh
|
||||
uikfmdjxyzlbgnritcepvlwmqh
|
||||
uikfmdjxczlcgnrotcecvswaqh
|
||||
mikfmdjxyzlbgnrotcepvswasi
|
||||
uifvmdjxyzlbgnrotpepvswaqh
|
||||
uikzmdjxyzlbgnrotrepvswaqs
|
||||
uikfmqjqyzlbunrotcepvswaqh
|
||||
uikfpdyxyzlbgnrotcepvswagh
|
||||
uikfmdjxyzobgnrotrlpvswaqh
|
||||
zisdmdjxyzlbgnrotcepvswaqh
|
||||
uikfmdjxyzlbgnlotiesvswaqh
|
||||
uikfddixyzlbgnroucepvswaqh
|
||||
uijfmdrxyzlbgnrotoepvswaqh
|
||||
uikfmdcxbzlbgnrotcepvpwaqh
|
||||
uikfmdjxxzlbfnrotcecvswaqh
|
||||
upkfmdjxyzmtgnrotcepvswaqh
|
||||
uikfmdrxyzlbgnrjtcepvswaqp
|
||||
uizfmdjxyzlbsnrotcepviwaqh
|
||||
uidfmdjxyslbgnrotcxpvswaqh
|
||||
uikfmdjxyzlbgnrovyepvsdaqh
|
||||
uiafmdjxyzlbgnrxtcepvsdaqh
|
||||
ugkfmdjxyzlbgnrodcepvswawh
|
||||
pikfmtjxyzhbgnrotcepvswaqh
|
||||
uikfmdjxyzlfgnvotcepvswtqh
|
||||
uikbmdjxyzlbgerotcepvswaqm
|
||||
uikfmdjxyhlbdnrotcepvswaqy
|
||||
uikfgdjxyzlbgnhotcepvswdqh
|
||||
uikfmdpxyzlbgnrotcepvscanh
|
||||
uikfmdjxyzsbgnretcepvswaqn
|
||||
uikfddjxyzlrgnrotcepvsbaqh
|
||||
uikfmdjxyzlbgnrotcqnrswaqh
|
||||
uhkfmejxyzlbgnrotvepvswaqh
|
||||
uikimdjxyzlngnrotceprswaqh
|
||||
uikfmdjxyzwbunrotiepvswaqh
|
||||
rikfmdjxyzlbgnrotcypvssaqh
|
||||
uikfmdjxyzlbdnrotcrpvswsqh
|
||||
uekfmdjxkzlbznrotcepvswaqh
|
||||
uikfmdjxyglbgvrotcepvswaqv
|
||||
uikfmcjxyzlbgnrotmeovswaqh
|
||||
uikfmdjxyznbgnrozcepvswaqm
|
||||
uikfmdjxyzlbdnrotcepdsyaqh
|
||||
umkfmdjxfzlbgnrotiepvswaqh
|
||||
uitfmdjxyzvbcnrotcepvswaqh
|
||||
uikfmdjqyzlbgnrvtcepvlwaqh
|
||||
uikfmdjxyzkbworotcepvswaqh
|
||||
uikfmdzxyzlbwnrotcypvswaqh
|
||||
uikfmdjxyklbgnrftyepvswaqh
|
||||
uinfmsjxyzlbgnrotcepsswaqh
|
||||
xisfmdjxymlbgnrotcepvswaqh
|
||||
uikfmdjxjzlbgnropcepvswaqv
|
||||
uikfmdjxyalegyrotcepvswaqh
|
||||
uikfydjxyzlbgnrotcekvswtqh
|
||||
uikwmojxyzlbgnromcepvswaqh
|
||||
uikdmdjayzlbgnrotcepvswzqh
|
||||
uikfmdjxyzlmvnrotctpvswaqh
|
||||
uikfmbjxyzlbgnrotceptsweqh
|
||||
yvkfmdjxyzlbgqrotcepvswaqh
|
||||
uikomdjxfxlbgnrotcepvswaqh
|
||||
uikfmdjxczlbgnroocepgswaqh
|
||||
uikemdjxizlbgnrotcegvswaqh
|
||||
uikdmdjxyzlbgwrotceprswaqh
|
||||
tiyfmdjfyzlbgnrotcepvswaqh
|
||||
tmkfmdjxyzlbgirotcepvswaqh
|
||||
uikfmdjxyzebgnzotcepqswaqh
|
||||
uikfmljxyzlbgnrwtcepvswaeh
|
||||
uikfmojxyzlbgnrotcepbswwqh
|
||||
uikfmdjxyzlbgsrotcewvswwqh
|
||||
uikfmdjhyzlbgdrogcepvswaqh
|
||||
uikfmvjxyzlbrnrltcepvswaqh
|
||||
jikfmdjxyzlbgnrotcepvgcaqh
|
||||
uikhtdjxyzlbgnrotcepvswarh
|
||||
uikfmdjxyezbgnritcepvswaqh
|
||||
uikfwdjxyzlbgnrotzepvsnaqh
|
||||
uikfmdjxqylbgnrobcepvswaqh
|
||||
zikzmdjxyzlbgnrhtcepvswaqh
|
||||
uiksmzjxyzlbgnrftcepvswaqh
|
||||
uikfmdjxuzlbgnrotcepvsvaqc
|
Loading…
Add table
Add a link
Reference in a new issue