2.1
authorMart Lubbers <mart@martlubbers.net>
Sun, 2 Dec 2018 09:41:17 +0000 (10:41 +0100)
committerMart Lubbers <mart@martlubbers.net>
Sun, 2 Dec 2018 09:41:17 +0000 (10:41 +0100)
2/input.txt [new file with mode: 0644]
2/s1.icl [new file with mode: 0644]

diff --git a/2/input.txt b/2/input.txt
new file mode 100644 (file)
index 0000000..e3e528f
--- /dev/null
@@ -0,0 +1,250 @@
+icxjubroqtunzeyzpomfksahgw
+ibxjvbroqtunleyzjdmfksahow
+icxjvbroqtinleyzpdmflsahnw
+icxjvbnoqtunleyvpgmfksahgw
+wcxjvbroqrunleyzpdmfksahge
+icxjtbroqtjzleyzpdmfksahgw
+icxjvbrohtunleyzpdmfkbahsw
+xcxjvbroqcunleyzpdmfksaxgw
+ycxjvbroqtunleyzpowfksahgw
+icxfvbroqtunleyzpdmfksncgw
+ixxjvbuoqtunleyzpdvfksahgw
+icfjvbroqtunleyzpdmfksadgt
+icxjvbroqdunleyzpdafksqhgw
+icxjvbrobtunlelzpdmfkuahgs
+ujxjvbroqtunleyzpdmqksahgw
+icqjvsroqtunleyzpdmfksahuw
+icxjvbroptpnleyzpdmfksangw
+ipxjvbroqtunleyzpdmfesahgi
+icajvbroqtunltyzpdqfksahgw
+ickjvbroqtuzleyzpdmfgsahgw
+icxjvbroqtunledzpdmwksahgz
+icxjvlroqtsnleyzpdmfksvhgw
+icxjvbroqtunleyzpdsfysahvw
+icxjvbroqtunwnyzydmfksahgw
+ionjvbroqtunleyzpdmfksahgj
+icxjvwriqtunleyzpdmfksahgi
+ocxjvbroztunleyzpdmfksapgw
+icxjvbroqtmnlewzpumfksahgw
+ucxjvbroqtunleyzpdmzktahgw
+icxgvbroqtunleyztdmfktahgw
+icxhvbroqttnleybpdmfksahgw
+icxjvbroqtugleyzpdxfkeahgw
+acxjvbroqvunlexzpdmfksahgw
+icxjvbroqglnleyzpbmfksahgw
+icxjvbriqtnvleyzpdmfksahgw
+icxjvbreqtunlakzpdmfksahgw
+gcxjvbuoqtunleyzpdmfksawgw
+icxjvbroqtunleyzpddfkyzhgw
+icxjvbjoqtunleyzpdmfqsahhw
+icxjvjroqtunleyzpnmfksajgw
+ycxjvbroqtunmeyzcdmfksahgw
+irxkvbryqtunleyzpdmfksahgw
+isxjvbrlqtunleyzpdmsksahgw
+icxjvbcoqtunleyzpdfkksahgw
+ixnjvbroqtunleyzpdmfkqahgw
+wcxjvbroqhunleyzqdmfksahgw
+icljvurmqtunleyzpdmfksahgw
+ibxjvbroqtayleyzpdmfksahgw
+arxjvbroqiunleyzpdmfksahgw
+iuxjvbroqtunluyzpdmoksahgw
+icxjvbrmqtunleyzpdmfosahew
+isxjvbroqtunleyrpdmfksrhgw
+icxjvxrpqtunleyzpdmfkdahgw
+ichjvbrogtunllyzpdmfksahgw
+icxjvbeoqtunlryzpdmfksakgw
+icxjvbroqtcnemyzpdmfksahgw
+icxjvbroqtybledzpdmfksahgw
+icxjvbrqqtunleyzpdmfksgngw
+icgjvbroqtunleyzmdmfksabgw
+icxjtbroqtunleyzkdmfksahww
+icxjvbfoqtunleyzpamfqsahgw
+icxjvbroknuyleyzpdmfksahgw
+icxjvbroqtujleyzpdmaksaigw
+icxjvbroqtnnlmyzpdmflsahgw
+icxjvbroqtunlefzpdmfsfahgw
+icxjvdroqtusleyzpdzfksahgw
+icxjvbioqtunlsyzpdmfkshhgw
+icxbvbrodtunleyzpdmoksahgw
+icxjvbroqtuvleyzpdmfkbahmw
+iyxjvbroqtunljvzpdmfksahgw
+icxjvbroqtudleynddmfksahgw
+icxjvwroqtnnleyzpdmfksahgz
+ichjvbroqtunleyzjdmeksahgw
+icxjvbrostunluyrpdmfksahgw
+icfjvbroqtunleyxpdgfksahgw
+nhxjvbroqtunlerzpdmfksahgw
+icxjvbrothunlexzpdmfksahgw
+icxjvbrzltqnleyzpdmfksahgw
+icxjvbrhqtunleyzpdmfksajgy
+vcxjvjroqiunleyzpdmfksahgw
+icxjfbroltunleyzpdmqksahgw
+icxbvbroqtunleyzpdofasahgw
+icxjvbkoqtunveyzpdmfksaqgw
+icxsebroqtunleyzpdmuksahgw
+icxjvbroquunlpyrpdmfksahgw
+icxhvbroqtunjeyzpdmrksahgw
+icdjvbroqtunlzyzpdmfksangw
+jcxqvbroqtvnleyzpdmfksahgw
+icxjvxroqtunleyrpdmfxsahgw
+icxjvnroqtunleyzpdmfssyhgw
+icxjvbraptunleyzpdofksahgw
+icxjvbroatunleyjpdmfbsahgw
+icxjvbroytlnlryzpdmfksahgw
+iaxjvbroqkunleyzpdmfcsahgw
+ucxjvbroqtuileyzzdmfksahgw
+icxjqbroqtcnleyzpgmfksahgw
+icxjvbloqtunleyzadmfksaqgw
+icxjvbroqtunleyzkdmnksakgw
+icxjvbroqtunleyjpdxfksahvw
+iqxjvbroqtujleyzpdmfklahgw
+icgjvbroqtunleyzpdmfksbhgb
+icxjzbroqtunleyzpdmfkdahgg
+icxjvbrobtunloywpdmfksahgw
+icxavbroqtunleyfpdmfksahgd
+icxjvbroqtunleyophmfksahkw
+icxjndroqtunlyyzpdmfksahgw
+icxjvbroqtjnleyppdmvksahgw
+icxjvbroonfnleyzpdmfksahgw
+icxjvbrqqtlnljyzpdmfksahgw
+icxjvbrzqtunlelspdmfksahgw
+icxjvbooqtunleyztdmfkfahgw
+icajvbroltunlnyzpdmfksahgw
+icxjvbroqtunleyzidmdkschgw
+icxjvbroktupleyzpdmfksahyw
+icxjcbroyeunleyzpdmfksahgw
+icxjvbroqtunlezkpdmfksahsw
+icxjvbroqtunlejzpcmfksrhgw
+icxjvvroqtunlsyzkdmfksahgw
+icxjnbroqtunbeyzpdmfpsahgw
+itxjbbroqtunleyzpemfksahgw
+icxjvbroqtunlrkzpdmfksshgw
+rcxjvbroqtujlbyzpdmfksahgw
+icxjvmroqtugleazpdmfksahgw
+icxjvbfoqtunleylpdmfkeahgw
+icnjvoroktunleyzpdmfksahgw
+icxjvbroqtunlvyzpdmfkfahgr
+icxjvbroqtgnseyzpdmfxsahgw
+scxjvbroqtunleycpdmfksdhgw
+icxhvbxoqtunleuzpdmfksahgw
+icxjvbruqtunleyzpnmfksfhgw
+icdjvbroqtunleyzpdmfksahup
+ihxjvbroqtunleovpdmfksahgw
+icxjvbroqtunleyzxdmfksahzv
+ocxjvbioqtunleyzpdmfzsahgw
+idxjvbroqtunlyyzpdofksahgw
+izdjvbroqtunleyzpdtfksahgw
+icxjvbrnqtunleyzpdmfksbhgb
+icxjvbrjqtunleyhpdmrksahgw
+icxjvbroqtunleyzpdbflsahgg
+icxjvbmfqtunleyzpdmfkaahgw
+idxjvbroqtunlsyzpdffksahgw
+bcxjvbroqtunleyzpkmfkswhgw
+ivxjvbroqtdnleyzpdmbksahgw
+icxpvbboqtunleyzpdmfksahtw
+ibxjvbroqtunlehzpdmfkmahgw
+icxjvbboqtunleyzpdmfkaahgv
+icxjlaroqtuileyzpdmfksahgw
+icxjvbroftunleyzpdmfqsahew
+ichjvbroqtunleyzpdmiwsahgw
+icxrvbvoqtunleyzpdmiksahgw
+icxjvbroqtunldydpdmfksahgl
+icogvbroqtunleyzpdmfnsahgw
+icxjvbroqtunleszodmfkswhgw
+icxjvbrontunleyztemfksahgw
+icxjvbrovtunleyzpdvkksahgw
+icxjvbroqqucteyzpdmfksahgw
+icmovbroptunleyzpdmfksahgw
+icxjvbqoftunleyzvdmfksahgw
+icxjvbdoqtunleyzpdmfkadhgw
+icxjvbroqtunlgnzpdmfksaqgw
+icxjvbroqtunieygpdyfksahgw
+acdjvbroqtunleyzpdmfkwahgw
+icxjvbroqtunleyzpdmfkfahlj
+icxjvbgoqtunleyepdmvksahgw
+icxjvbpobbunleyzpdmfksahgw
+icxjvbroqtunleurpdmfktahgw
+ipxjvbzoqtunleyzpdmffsahgw
+icxjtbroqtunllyzpdmuksahgw
+icxjvbroqtunbsyzadmfksahgw
+ihxjvoroqtuqleyzpdmfksahgw
+idxjmbroqqunleyzpdmfksahgw
+wcxjvbdoqtunleyzpdmfksahgr
+icxjvbroqtunleygptmfksahgj
+ipxjvbrsqtunleyzpdmfksghgw
+ycxjvbroqtunluyzkdmfksahgw
+icxjvbroxtuulejzpdmfksahgw
+icqjvbroqtunlwyypdmfksahgw
+ioxjhbroqtunleyzphmfksahgw
+icxjvbgoqnunleyzpdmfksahaw
+mcxjvbroqtunleyzpdmfksihgh
+icxjsbroqtunlqyzpdmfksawgw
+icxjvbroqtuoleycpdmftsahgw
+icxjvbroqtunleyzgdifksahlw
+icxjvbmoqtunleyzjfmfksahgw
+icxjvbroqtunlezopdmfksahge
+icxjvbroqtbnlefzpdmfosahgw
+tcxjvbromtunlevzpdmfksahgw
+irxjgbroqtunleyzpdmfksthgw
+icxjvbrojtunleyxpdmoksahgw
+icxrvbroytpnleyzpdmfksahgw
+icxjvbroqtunfeyupdmfksasgw
+ihqjvbroqtunleyzpdmftsahgw
+icxjobroqkunleozpdmfksahgw
+icjjjbroqtualeyzpdmfksahgw
+icxjvbroqtunaeytpdmfksahvw
+icxjvbroqtunzeyzpdmfkshhxw
+icxqvbroqtucleyzxdmfksahgw
+icxjvbrogturleyzxdmfksahgw
+icxjvoqoqtunleyzpdcfksahgw
+iuxjvbroqtunleyzpdmfksopgw
+icxjveroqtunleyzptmfksalgw
+icxjvbroqtunleyzpdmfwcahhw
+iwxjvbroqtlnleyzpdmfksyhgw
+ectjvbroqtanleyzpdmfksahgw
+icxjvnroqtyhleyzpdmfksahgw
+icvjvhboqtunleyzpdmfksahgw
+icxjtbroqtuzleyupdmfksahgw
+icjjvproqtunleyzpsmfksahgw
+icdjvbroqtutleyzpdmiksahgw
+icxjvwroqtujleyzpdmfksahgc
+icxjxbroqtunleyzpdwhksahgw
+icxjvbqoqtunleyzpdmvfsahgw
+icajvbroqtusleyzpdmfksaagw
+icxjvbroqtunbtyzpdmfksmhgw
+kcxjvbroqtxnleyzpdmfkskhgw
+icxjvbqogfunleyzpdmfksahgw
+icxjvbroqtubleyzpdmfdswhgw
+icxjvprlqtunleyzpdmffsahgw
+icxjxbroqtucleyzpdmfksakgw
+dcxrvbroqtunleycpdmfksahgw
+icxjvbrobtunleyzpomfksahgu
+ocxrvbroqtunleyzpdmfssahgw
+icxjvbroktunlejzpdmfksahzw
+icxjvbrovtunleyzmdmfkhahgw
+icxjvbroqtudleygpdmfksfhgw
+bcxjvbroqtubllyzpdmfksahgw
+icxwvbrontunzeyzpdmfksahgw
+icxjvbroqtunleysjbmfksahgw
+icxjvvroztunleyzpdmfksjhgw
+ivxjxbroqtunleyzpdmfksahew
+icxjvbroqtunleyupqufksahgw
+icxjvmrcqtunleyzpdmxksahgw
+icxjvgroqtunleyzpdgfkuahgw
+icxjvbroqthnqeyfpdmfksahgw
+icxjsbuodtunleyzpdmfksahgw
+iuxjzbroqtunleyzpdrfksahgw
+icxjvbrobtunlelzpdmfksahgs
+icxjvbroqtzhljyzpdmfksahgw
+inxtvbroqtunleyzpdmeksahgw
+icgjvbroqtunleyztdmfksahgq
+icxjvagoqtugleyzpdmfksahgw
+icxuvbroqtunleyzpimfkyahgw
+icxzvbroqtfhleyzpdmfksahgw
+icxjjbroqtqnleyzpdmnksahgw
+icjrvbroqtunleszpdmfksahgw
+iexjvbroqtunlgyzpdmfksacgw
+rcxjvbkoqtuoleyzpdmfksahgw
+icxjvbroqgunlwyzpdmfksqhgw
+icxjvbroqtunleqzpsmfksqhgw
+icxjvbroqtubaeyzpdmfksaugw
diff --git a/2/s1.icl b/2/s1.icl
new file mode 100644 (file)
index 0000000..af6361e
--- /dev/null
+++ b/2/s1.icl
@@ -0,0 +1,27 @@
+module s1
+
+import StdEnv
+
+import Data.Func
+import Data.List
+import Data.Tuple
+
+getinput f
+# (ok, c, f) = freadc f
+| not ok = []
+= [c:getinput f]
+
+split :: [Char] [Char] -> [[Char]]
+split [] [] = []
+split c [] = [reverse c]
+split c ['\n':rest] = [reverse c:split [] rest]
+split c [r:rest] = split [r:c] rest
+
+Start w
+# (io, w) = stdio w
+# l = map (nub o map length o group o sort)
+       $ split []
+       $ getinput io
+= ns 2 l * ns 3 l
+
+ns n l = sum [1\\x<-l|isMember n x]