this repo has no description

Move 2020 solutions to LiveBook

hauleth.dev 95c8d1da 955b43c0

verified
-200
2020/1/input.txt
··· 1 - 1706 2 - 1466 3 - 1427 4 - 1744 5 - 1684 6 - 1386 7 - 2001 8 - 1750 9 - 1753 10 - 1770 11 - 1559 12 - 1616 13 - 1408 14 - 1860 15 - 1940 16 - 2002 17 - 1862 18 - 1918 19 - 1456 20 - 1209 21 - 1840 22 - 1462 23 - 1783 24 - 1644 25 - 1901 26 - 1791 27 - 1506 28 - 2005 29 - 1338 30 - 1383 31 - 1420 32 - 1631 33 - 1784 34 - 1897 35 - 1771 36 - 1588 37 - 1955 38 - 1937 39 - 1392 40 - 1396 41 - 1803 42 - 1429 43 - 1407 44 - 1698 45 - 1562 46 - 1913 47 - 1678 48 - 1198 49 - 1398 50 - 1703 51 - 1831 52 - 1489 53 - 1782 54 - 1864 55 - 1708 56 - 1397 57 - 1915 58 - 1953 59 - 1395 60 - 1610 61 - 1549 62 - 1564 63 - 1973 64 - 1931 65 - 2009 66 - 1980 67 - 1800 68 - 1443 69 - 1993 70 - 1900 71 - 1964 72 - 1581 73 - 1904 74 - 1665 75 - 1567 76 - 1057 77 - 1805 78 - 1402 79 - 1878 80 - 1729 81 - 1825 82 - 1682 83 - 1719 84 - 1469 85 - 1004 86 - 1591 87 - 1594 88 - 811 89 - 1523 90 - 1424 91 - 1756 92 - 373 93 - 1442 94 - 1718 95 - 1411 96 - 1892 97 - 1820 98 - 1977 99 - 1871 100 - 1890 101 - 1653 102 - 1372 103 - 1475 104 - 1476 105 - 1422 106 - 2004 107 - 1755 108 - 1676 109 - 639 110 - 1425 111 - 1853 112 - 1712 113 - 1525 114 - 1514 115 - 1455 116 - 1658 117 - 1963 118 - 1579 119 - 1861 120 - 1458 121 - 1474 122 - 1613 123 - 1681 124 - 1586 125 - 1441 126 - 1499 127 - 1865 128 - 1735 129 - 1989 130 - 1952 131 - 792 132 - 1669 133 - 1509 134 - 1481 135 - 1893 136 - 1445 137 - 1834 138 - 1779 139 - 1732 140 - 1826 141 - 1595 142 - 1829 143 - 449 144 - 1920 145 - 1707 146 - 1780 147 - 1935 148 - 1867 149 - 1769 150 - 1107 151 - 919 152 - 1382 153 - 1604 154 - 1875 155 - 1453 156 - 1496 157 - 1946 158 - 1659 159 - 1570 160 - 1692 161 - 1630 162 - 1638 163 - 1922 164 - 1691 165 - 1580 166 - 1880 167 - 1482 168 - 1762 169 - 1775 170 - 1376 171 - 1434 172 - 1856 173 - 1971 174 - 1646 175 - 1951 176 - 1416 177 - 1889 178 - 1773 179 - 1814 180 - 1471 181 - 1488 182 - 1736 183 - 1743 184 - 1459 185 - 1389 186 - 1498 187 - 1663 188 - 1611 189 - 1727 190 - 1699 191 - 1624 192 - 1511 193 - 1767 194 - 1754 195 - 1785 196 - 1491 197 - 1235 198 - 1510 199 - 1500 200 - 1485
-65
2020/1/solution.exs
··· 1 - defmodule Solution do 2 - def load(path) do 3 - path 4 - |> File.stream!() 5 - |> Stream.map(&String.to_integer(String.trim(&1))) 6 - |> Enum.to_list() 7 - end 8 - 9 - def run([], _, _), do: nil 10 - def run(_, _, sum) when sum < 0, do: nil 11 - def run([a | _], 1, a), do: [a] 12 - 13 - def run([a | rest], n, sum) do 14 - case run(rest, n - 1, sum - a) do 15 - nil -> run(rest, n, sum) 16 - nums when is_list(nums) -> [a | nums] 17 - end 18 - end 19 - end 20 - 21 - list = Solution.load("./1/input.txt") 22 - 23 - list 24 - |> Solution.run(2, 2020) 25 - |> Enum.reduce(&*/2) 26 - |> IO.inspect(label: "task 1") 27 - 28 - list 29 - |> Solution.run(3, 2020) 30 - |> Enum.reduce(&*/2) 31 - |> IO.inspect(label: "task 2") 32 - 33 - Benchee.run(%{ 34 - "first solution" => fn -> 35 - try do 36 - for x <- list, y <- list, z <- list, x + y + z == 2020 do 37 - throw(x * y * z) 38 - end 39 - 40 - :error 41 - catch 42 - num -> {:ok, num} 43 - end 44 - end, 45 - "optimized" => fn -> 46 - try do 47 - for x <- list, 48 - rest = 2020 - x, 49 - y <- list, 50 - y < rest, 51 - rest = 2020 - x - y, 52 - z <- list, 53 - z <= rest, 54 - x + y + z == 2020, 55 - do: throw(x * y * z) 56 - 57 - :error 58 - catch 59 - num -> {:ok, num} 60 - end 61 - end, 62 - "mine" => fn -> 63 - Solution.run(list, 3, 2020) 64 - end 65 - })
-1000
2020/2/input.txt
··· 1 - 5-10 b: bhbjlkbbbbbbb 2 - 3-4 j: hjvj 3 - 8-9 p: pmljtsttp 4 - 3-4 t: hvtttqhdjmmnbqwbgfs 5 - 4-6 m: mblwtzmvmdjkkmmtsckm 6 - 6-9 f: ffffftfff 7 - 1-3 g: xggg 8 - 3-10 k: rwkhttkxxdpnlkq 9 - 3-11 w: wwmwwwwwwwww 10 - 5-7 f: fffffffff 11 - 1-4 l: lglllbc 12 - 2-5 n: njnnn 13 - 6-8 t: tcjtltttttdttjttbt 14 - 10-20 d: djddddccdbdddddddndd 15 - 2-5 z: gzppzhrhzdthnpcr 16 - 13-14 p: plvppptppppzppbkpk 17 - 11-13 t: jjtjvzfhsrtsmkdhj 18 - 11-12 r: rtrdvrrxrrxrzr 19 - 2-6 x: dxsvxgvk 20 - 7-11 x: hcxxpvxrnmxckkq 21 - 12-17 s: sssssssssssrssssss 22 - 2-4 v: vvpvvvjvvjvvqbvv 23 - 15-18 h: thqhhhgjjqhhnhhznz 24 - 8-11 j: jbmgbtmjtbb 25 - 2-4 d: xxdfvp 26 - 2-7 p: fftlppz 27 - 9-13 d: dfddddddsdddds 28 - 5-7 d: ddddddz 29 - 2-3 h: hfbhhh 30 - 1-4 k: rmkvkkkk 31 - 16-17 w: wwwhwwwwwwwwwwwwq 32 - 5-8 l: gllxllnlqlglrplk 33 - 1-7 p: mhnpspp 34 - 5-13 f: qhwffbtfzmdffztfjs 35 - 2-8 f: fkjhvcbflbwhggtbbcb 36 - 2-3 m: bcmldxmdh 37 - 6-7 p: ppcpppw 38 - 3-10 m: mmmmmmmmmj 39 - 4-12 s: ssjssssssssmsss 40 - 2-5 j: rmjnjtjjjj 41 - 2-3 q: qqdqq 42 - 10-15 v: vvvvvvvvvvvvvvdvvvvv 43 - 1-4 w: wwwc 44 - 4-14 m: mmsmmmvmmmmmqqmmmmm 45 - 7-10 d: ddcdddzdddddd 46 - 4-5 h: hhhhh 47 - 9-17 p: ppppppppqppppppppp 48 - 6-7 m: mqtmnms 49 - 4-5 s: pssss 50 - 2-6 t: tdttttpwttt 51 - 7-8 l: llsxsllzlwl 52 - 7-10 f: fflffffkqffffm 53 - 3-4 f: cdfp 54 - 3-4 z: zzzz 55 - 6-7 s: sbssdvs 56 - 3-4 g: ggdv 57 - 11-16 l: lllllnbsqlfzwrfljkh 58 - 3-4 k: tqkxxfk 59 - 3-17 s: xshmvlmzrjdpnvlssn 60 - 1-16 l: lzzvllgktckllmlltl 61 - 5-6 l: qlltvl 62 - 6-7 p: npvbpcp 63 - 4-6 g: gmgvgn 64 - 12-13 r: rrnlrrwrtvrrrrcrrrv 65 - 11-12 h: hhvxhhhhwjhd 66 - 13-14 p: pdppcsjtppppppvtwpj 67 - 10-14 l: hljjkjxlfwzlllclzq 68 - 18-19 z: zzzzzzzzzzzzzzztzhn 69 - 11-12 p: hpspwrkqbnpp 70 - 16-18 h: hhhhhhghhhhhhhhwhbh 71 - 1-2 p: vpxnqqbgrxprmh 72 - 13-19 m: mmmmmmmmmmmmqmmmmqm 73 - 1-2 n: ncndsnl 74 - 9-10 x: xxxxxxxxxgxxd 75 - 9-12 w: wwwwwwwwwwzwwdfgwwp 76 - 3-5 h: nqhvhzb 77 - 4-5 j: jjjns 78 - 10-12 f: ffffffffffff 79 - 7-10 v: mgvrwvvsjw 80 - 3-5 m: wpmmm 81 - 3-10 s: ffsbvjdslsnshqs 82 - 9-10 z: mgzzbjzqsz 83 - 3-13 d: ddjdddddddddnd 84 - 2-4 l: tqkfhpwvvmc 85 - 1-3 z: zzzzzn 86 - 3-5 l: ctljlckdpnlchrzbc 87 - 6-7 v: hqvcvvv 88 - 11-13 v: vvvvcvvvvvvvvvv 89 - 8-9 t: ztndmlwdb 90 - 5-6 v: fdxxrvwpw 91 - 1-4 n: xnkb 92 - 16-17 v: vvvvvvvvvvvvvvvvnvv 93 - 12-14 b: bbbbbxbbbdbgbcb 94 - 1-7 w: wwwwwwrwwjtwk 95 - 3-10 d: bxnhbhrmgd 96 - 4-5 k: kkknkk 97 - 2-4 n: bndln 98 - 3-10 p: vpkppcppppcplpksp 99 - 9-10 d: fhbzbdzqsdxlhnbt 100 - 11-13 z: zzmzzzzwzpzzz 101 - 12-17 b: hkbcbbhthbrbbdgbl 102 - 11-13 c: cpccnxccxbjtm 103 - 5-6 n: nnrmnfnsnn 104 - 3-8 l: sslkllwljcgl 105 - 1-9 p: fpppzzpppppphtrhppp 106 - 4-11 h: kskbvrqhdjph 107 - 3-9 r: rsrvxnrchtrrrr 108 - 4-5 n: nwbln 109 - 3-4 g: gjgv 110 - 13-14 r: rrrrrrsrtrrrrrrrr 111 - 10-15 m: mmmmmmmmmtmmgmm 112 - 5-6 k: wkpkkqk 113 - 10-11 l: wlbllglkbltblrqlllm 114 - 6-7 d: ddddsrddd 115 - 17-18 v: vvvvvvvvvvvfvgvvsvv 116 - 6-10 n: nngnnnnvnknn 117 - 7-8 t: qdztnrnt 118 - 5-11 d: dfbdxqbmsdd 119 - 1-6 n: znnvqdnx 120 - 7-9 k: kkkkkkkkl 121 - 5-6 m: mmmszmtmmks 122 - 1-5 l: wlllllll 123 - 13-14 m: mcmmmmmlmmmmjmmm 124 - 1-7 k: kklkjvckb 125 - 14-15 d: ddddmddddmddddddd 126 - 18-19 k: kfkkkkkkkkkkkkkkkpkk 127 - 3-4 z: czjzc 128 - 17-18 t: btttttjmltrttxctgt 129 - 1-4 c: cccscqcccc 130 - 9-14 k: tcwcstszkvhjfmrqpkp 131 - 3-8 c: ccccccjcscncp 132 - 10-11 d: dddddddddmdd 133 - 3-5 m: rgmfmkmd 134 - 1-5 k: mfhnk 135 - 4-5 x: cwnxftlt 136 - 1-3 n: flnqmnnhnn 137 - 2-5 f: vwlcnsfd 138 - 4-8 c: cccccccbc 139 - 10-12 v: dhfvlvbvspjldzch 140 - 7-16 f: ffsmffffjffqfpffff 141 - 10-13 n: njtrrnnqntjtn 142 - 13-17 f: frffcfffrjffffdfpff 143 - 5-10 m: mmmmvfmmmmmmmmdm 144 - 5-6 v: vvvvvzvvvvv 145 - 6-12 r: dqrrcrhrhjsrrr 146 - 8-14 z: zzzzzzzlzzzgzsz 147 - 5-9 q: qkwzsvwdg 148 - 12-13 d: vzjfvddgctfdrr 149 - 6-7 f: mgndffb 150 - 2-5 x: nxxmx 151 - 7-9 c: cmxsccccf 152 - 1-7 n: nnnnnnnnnn 153 - 6-8 g: gggglfgp 154 - 2-13 v: kvwxcrfmpfcfdrgv 155 - 5-7 p: tpplpffpccpp 156 - 8-12 m: mmmmmmmmmmmxm 157 - 9-10 v: vvvvvvvvvcv 158 - 4-5 m: mbnmmkknmmwshmkthj 159 - 8-9 t: cltntrtpqwtcsftttf 160 - 8-16 f: ffffrffpffffffffff 161 - 6-8 t: sttcctttdttdwjdndtt 162 - 5-9 k: ckkkkvdkvkk 163 - 1-3 f: ffczfpgmf 164 - 2-4 w: wwlwwd 165 - 1-9 d: lddbhdddmtfdmdzdrdhd 166 - 16-17 h: xfqlbhhpbnclvztzzzx 167 - 2-7 r: rrbntqrrsrkrm 168 - 1-4 r: qwrr 169 - 12-14 b: tvbbzjbbbbbbbn 170 - 5-7 h: hhjvghth 171 - 2-3 d: dndrcx 172 - 8-9 c: ccccscccpc 173 - 5-8 s: srcsszcsp 174 - 13-15 g: gggggggglggggglggggg 175 - 11-13 b: bbbbbfrbfbbgbb 176 - 1-8 b: jbbkqbbbpbbbbbbp 177 - 11-14 n: nnnnnnnnnnmnnnn 178 - 1-4 g: qsggg 179 - 14-15 l: sllslllggllljkdlm 180 - 1-5 s: pvssbspdsshsssssrs 181 - 7-10 c: ccccccmcpgcc 182 - 6-14 m: bcfkpmvmcmmjml 183 - 1-3 n: ncnnnnn 184 - 12-14 j: bjfjxjjpjrjjjxjjk 185 - 10-12 v: vfvvvvvvqjvvvwvwt 186 - 6-13 d: stddxdnjrddhwgdhrfjf 187 - 5-6 w: qcwhnwwk 188 - 2-3 x: mcxfxckptzvw 189 - 12-20 b: lvgvbxsxxlvbhfcxbtzr 190 - 1-2 d: ddbdqd 191 - 5-10 h: mhtnjvhhhs 192 - 2-6 z: ztzzdxzzzqbvg 193 - 2-7 t: ttjkqztr 194 - 3-4 g: bgvggrxrhtlklfj 195 - 4-5 q: qqqvq 196 - 1-3 c: ccpc 197 - 4-6 j: jjrdjj 198 - 8-11 c: ncvshccccccsb 199 - 1-2 z: rzzqxczxbkpvgkxfzgvz 200 - 10-11 f: kffsffffbqf 201 - 18-19 v: vmvvvvvvvvvvvvvvvql 202 - 14-15 m: mmmmmmmmmnmmmpmm 203 - 12-17 z: zzzzzzzzczzdlzzzzz 204 - 4-6 g: zggggg 205 - 12-16 h: hhhfhhrnnkhhmhhtqvh 206 - 3-4 n: hxssbnn 207 - 6-9 m: mmmmmmmmdmmm 208 - 5-6 n: nnwtgn 209 - 6-10 c: lppbvxcmjc 210 - 7-8 d: dpddzddvdzdddzfddd 211 - 1-5 z: xlzmzzz 212 - 6-11 h: hjhhhphhhhf 213 - 1-9 h: hhdghtsmmjhhnnwz 214 - 6-9 t: ctldsstttstrz 215 - 3-4 t: qvktfwnjcjtqtjqtn 216 - 6-7 w: wwwwwwsww 217 - 11-12 m: nphmmmpmmmcm 218 - 8-9 p: ppppdppdp 219 - 12-13 l: cllzzglllbqlll 220 - 2-7 s: sslssssgbssbsssnss 221 - 6-14 j: jvjrxjjrlgvjzmgj 222 - 7-8 p: hxpnjvzqxm 223 - 2-10 g: xgzfgvdsxr 224 - 4-5 t: lttttxdtp 225 - 3-12 c: kkpckmphqfcc 226 - 4-7 v: rbsjcpvwgtfjpv 227 - 2-4 k: swqfkb 228 - 5-9 n: knfdnnnnn 229 - 12-14 t: zgwthtdtrxvvftst 230 - 3-5 v: vlvqtv 231 - 15-19 t: fqwkwbtjdqncnsmnqxr 232 - 3-8 c: mxccchksq 233 - 3-5 v: jtpvr 234 - 5-7 k: kbkkkshkkkzkkkt 235 - 8-9 z: zzzzzzzzzzz 236 - 6-13 k: kkkkkkkkkkkktkkk 237 - 5-7 c: mccchbwc 238 - 7-12 x: gxxxxlgmztwsxxxgj 239 - 3-12 b: ndsbdfdgvxtbmrqcrjhs 240 - 1-3 d: qxdtdt 241 - 3-7 b: qbbdbgb 242 - 12-15 p: ppmplpptppwppppg 243 - 7-8 r: rjrrrrrz 244 - 8-10 p: cppppgspsxpvp 245 - 1-5 w: wwwpwf 246 - 4-8 p: nhqlknppmpplb 247 - 1-6 c: cvccccrc 248 - 7-8 c: cccccctccccccc 249 - 4-12 x: jxrxtnxrxxvsx 250 - 9-15 g: jfgxnznpwhccdggnm 251 - 2-6 h: jphhphlvhgqbwnl 252 - 8-9 f: dfftbfxsxxqfdvlfs 253 - 1-12 t: dtttttttttttttt 254 - 3-7 h: hshhmhh 255 - 3-4 w: wwwj 256 - 5-6 z: zzzzzp 257 - 8-12 m: jmnwmtjmnqvrj 258 - 4-5 f: ffffvff 259 - 8-10 l: llllflllxll 260 - 4-8 x: zcvxtxxkm 261 - 13-15 p: pppppkppppbpppsp 262 - 3-6 h: hhhhphlhhghkt 263 - 2-13 t: tcttttjtttttltttttt 264 - 9-10 b: bbbbbbbbvb 265 - 7-8 w: fwbwwwqw 266 - 6-9 s: jssssssssssssssssw 267 - 13-17 p: pppppppppppppppppp 268 - 5-7 q: lqxcqqqqcmgtbqjrqmjg 269 - 4-17 t: tttpfttttjttttttvt 270 - 13-14 c: cccccccccccccj 271 - 1-2 p: pxrpqpmpp 272 - 3-8 l: rnlxbwwzjdsh 273 - 2-7 w: kwkghnsfcp 274 - 9-11 m: mmdrktmzmrzhmgdmg 275 - 8-11 z: wzxwzzbfznc 276 - 5-7 t: rtbtntt 277 - 2-3 v: nqvv 278 - 2-3 r: krrwb 279 - 10-11 q: qqqqlqqvqqqqqq 280 - 3-5 r: drrhh 281 - 7-9 f: ffffffffhv 282 - 4-13 m: rkmmbjnsjzjcmwmwk 283 - 15-17 s: jrrvwtnklssqshzpss 284 - 12-13 z: fczzpzzzzzzkl 285 - 10-12 z: jshkxzzzrdzj 286 - 6-13 k: kkkkkkkkkkfkgkkkkkk 287 - 14-15 w: wcjjlzkpbspcwcw 288 - 2-5 n: npnnznk 289 - 5-15 b: cgqlmxzqmvqzbvb 290 - 13-15 r: rrrprrrrrrrrlrr 291 - 5-6 z: pgfzxw 292 - 4-17 x: xlgxwsxjxdxxhqhtcj 293 - 11-16 z: zzjhzzlzrzkzwzlzz 294 - 7-8 b: tltbbrbbbkb 295 - 2-14 k: pnkkqfxkkqkkmkkdkjkk 296 - 1-3 f: hjmvjfxvxtgh 297 - 6-8 w: xgrvwwswwxg 298 - 16-18 v: vwvvvvvvvvkvvmvvvtv 299 - 3-10 w: wwwwwwwwwwwww 300 - 2-4 w: zcwwqwtdwj 301 - 3-7 r: ttrrnwszwqsp 302 - 1-7 m: mjjqlgm 303 - 12-15 x: xxxxxxxxxxxlxxnxx 304 - 3-6 z: zzzzzjz 305 - 8-9 s: sssssssvs 306 - 5-7 w: wlwswwd 307 - 17-18 z: zzzdzzzzzzzzzzzzzx 308 - 5-7 j: dchcjfj 309 - 2-5 k: cqpkn 310 - 8-10 x: xxxnxxxxxtx 311 - 1-5 t: tttttttt 312 - 5-6 k: lkkphk 313 - 11-13 c: scdtdcghdmcttcc 314 - 2-5 h: hhhhhh 315 - 4-6 r: clrrrr 316 - 2-13 s: szsssssssssssssv 317 - 3-11 x: krxmwcznvwrlcx 318 - 7-8 m: cmmttmbm 319 - 3-4 c: pdwccbxwfvhcgrx 320 - 5-8 p: ppppvppq 321 - 12-19 l: llfllrllmwlmlllllll 322 - 11-15 p: psplppzglptmppp 323 - 6-14 m: mmvmmgmmmpmmmxm 324 - 5-6 j: jjctdzj 325 - 9-10 k: xnkzkkpplpkkkkk 326 - 10-14 t: crsttgdtzgfqtx 327 - 6-7 j: jbkpsjjjsrzf 328 - 1-4 v: vsvvvvm 329 - 4-5 f: lhbnfgqmbfltqrxzzx 330 - 12-13 q: qrjkxcwqqkdjmsxfnqmf 331 - 18-19 q: qqpqqxzqjnqqbhqkqqv 332 - 16-20 m: nzbmqjwbmmmnhmlmszbf 333 - 5-9 k: kkkkxskkkkk 334 - 1-2 x: txhxx 335 - 9-12 s: sssssssssssr 336 - 3-4 s: qsssssh 337 - 19-20 f: mfffmpfhhffwrlkffvff 338 - 3-15 b: bbpbbbbbbbbbbbbbb 339 - 8-9 h: fbcjphblh 340 - 6-9 p: ppppbnpppfppw 341 - 6-20 n: nsxzcgbcgqvjwfrgtnsr 342 - 5-7 s: cssdjdssr 343 - 3-4 g: gggwgg 344 - 1-6 s: hsspsss 345 - 2-5 z: zlgzb 346 - 5-8 l: jsljljtlpqhjl 347 - 3-10 n: mznwwnvhgbg 348 - 2-3 c: cckcc 349 - 1-10 r: rrpcbdrrrr 350 - 16-17 q: kqjxngwrpqlsqklnq 351 - 2-4 n: mnmnn 352 - 8-9 n: nnnnnnnsrnl 353 - 2-4 r: qrhlrvwpqsvktzcqms 354 - 6-9 v: vbqlvvvhqvqpv 355 - 2-8 b: kngrzdbb 356 - 10-13 d: dddddddddwdddd 357 - 2-6 z: czkzhzqdffh 358 - 8-19 n: kngnjnftdsrnhsnmznn 359 - 8-10 m: rngxfjlmmvtctp 360 - 16-17 k: dlkkxxkkkczkkkkkvs 361 - 3-17 n: wllsknnzckmmsjmqnxc 362 - 11-12 h: csrhwxwdnkhh 363 - 3-7 g: ggggggngg 364 - 1-14 s: sssssssssssssssdl 365 - 8-16 m: mmmmmmmkmmmmmmmpm 366 - 8-9 b: kdbqtknpncbbffd 367 - 14-15 z: zjzzszcgnzczszg 368 - 12-16 g: jdvgrmdczssgtwsq 369 - 2-6 n: lwlklnfxlhwdkn 370 - 1-5 c: bnfbdzc 371 - 14-15 b: bbbbbbbbjbbbbtb 372 - 2-5 v: vnvvvvv 373 - 14-17 s: ssssszssssssssshmsss 374 - 7-9 h: fhmhjkcrhbl 375 - 11-15 g: fwhjldbbprhngcjg 376 - 9-15 m: mdcbhmmjlmfmmtmcmm 377 - 10-13 j: jjjjsjjjjlwjsjjl 378 - 1-5 s: dsssssssssssssssss 379 - 5-15 r: rrxprrrrrrrzvhrrrrr 380 - 5-7 b: svnbkbb 381 - 2-4 w: kwwqws 382 - 13-20 q: slgmkqmkvlqqwjfdhqdq 383 - 8-12 l: llllllljlllkll 384 - 9-20 c: cccccccccccccccccccc 385 - 5-6 n: wlcnnh 386 - 1-4 w: lzwwv 387 - 8-9 h: hhphhhhhhhdhh 388 - 8-10 t: mnsnktzgrn 389 - 11-16 v: bjvcvfrkgkvzvvvxb 390 - 11-18 v: vvvvvvvvvvvvvvvvvxvv 391 - 11-14 l: llllkllllrlqll 392 - 5-11 q: zwlqcqqnnqq 393 - 5-11 p: pftpphptptphtskqp 394 - 4-12 p: pvpwpzppppppppdk 395 - 2-4 h: hhhqhh 396 - 6-12 l: jznsrcnxkllz 397 - 13-15 j: vdjkhxjptxzfjjm 398 - 4-5 t: vzhft 399 - 7-10 m: bmrmztmwxmms 400 - 5-7 h: hswmtbhcb 401 - 13-17 f: vmhffvvfjtffpllftff 402 - 11-16 w: wqntqwmzcwwvhwwsxwlh 403 - 2-4 r: wrbb 404 - 2-10 b: bbbbbbbbbb 405 - 1-11 m: mmmmmmmmmmmmmmmmmmhm 406 - 13-14 r: rrrrrrrrrrrrrwrrrr 407 - 3-6 n: vnsprwznfn 408 - 3-4 v: vvvz 409 - 2-11 p: ppxjqmffgtp 410 - 7-10 s: sslmsssssss 411 - 10-11 j: jjlsjjjjjfjjj 412 - 4-7 b: fbbhggbcmr 413 - 12-13 s: sssssssssssgxs 414 - 8-10 l: lpllllhlcnlllxl 415 - 3-4 l: ljxlml 416 - 2-14 f: ffffffwfffzfcnfffwrf 417 - 7-10 h: kwdcfptcchhhhhgz 418 - 2-9 j: jjjjjsmjzjqjjj 419 - 4-13 w: wwcwwwmrwwwgqwr 420 - 3-5 t: ttmtttt 421 - 5-13 d: whpdqwpvkzsxdmgtnz 422 - 13-14 x: xxtbcxxxwxxxxx 423 - 1-7 t: ttttttdthtttttttt 424 - 6-15 x: pxfnxbnmpxgmwzxkv 425 - 2-11 m: kmcmjlddbwm 426 - 9-14 d: dddddddddddddldd 427 - 6-9 x: nxvkxvxxx 428 - 18-19 x: xsxxxrdxbkjmbdvfrrx 429 - 12-13 j: jnjjjgjjqrjjs 430 - 14-16 r: rrrrrmrrrrqrrxrvrvr 431 - 5-9 h: hhvvhmzjn 432 - 5-6 w: wwgfzt 433 - 10-13 v: vvvvvsvvvtvvxvvrvvv 434 - 2-4 h: hwhh 435 - 4-8 s: ssssssshss 436 - 5-12 n: nnnnnnnnnnncn 437 - 2-3 x: bxxmxcdzlj 438 - 14-16 x: chpxcprsxhxvkxzc 439 - 7-9 b: bbbbbbbbbb 440 - 10-11 x: xxskpxtfhxd 441 - 5-7 w: zwwwrww 442 - 1-8 l: splxkhxw 443 - 8-9 q: llcbqltqh 444 - 2-3 k: kkcckxm 445 - 6-11 c: ccccsccccccccccccccc 446 - 6-14 k: xkbbnkknkttqpb 447 - 12-16 d: dcddddrddnddvprsd 448 - 1-3 p: bpplj 449 - 4-6 n: nntbnpn 450 - 14-15 k: nwcckxptkgrrbkd 451 - 12-14 d: dddddddddddddxd 452 - 1-11 v: vvvvjvvvvvvvvv 453 - 4-6 g: gtgbfg 454 - 5-8 h: hhhhdhhhhhhh 455 - 13-15 n: nwnnpnftnbnknqn 456 - 3-4 m: mpfqmj 457 - 3-6 t: ttmtct 458 - 2-4 s: sssss 459 - 10-16 v: vvszvvgvvvvvvvvcv 460 - 11-13 t: stvdjtwjzftrtprpb 461 - 5-6 p: pppptp 462 - 12-15 d: ddtdjdddxdhxzdcd 463 - 12-16 b: bbbbbbbbbbbxbbbbb 464 - 12-14 n: qnnnnnnnnzlnnnn 465 - 9-11 v: sqkrmzjqvvv 466 - 2-5 d: cdpfdtjdkn 467 - 7-8 p: pppptppppp 468 - 2-4 s: ssszsss 469 - 13-15 d: cpdwdbvqxcffdrd 470 - 4-5 j: hbjjpppm 471 - 5-8 g: gvgmgjgrzz 472 - 6-7 s: sssssqn 473 - 1-11 p: tpstkbpmtbpg 474 - 17-18 m: zmmmsrsrgfpggmmmlgk 475 - 2-3 f: ffkhf 476 - 2-5 f: ftfff 477 - 2-10 m: gqxlmphwcmfc 478 - 6-8 v: bvgwwbvlvvvlrvv 479 - 13-14 n: nnnnnnnnnnnnnxn 480 - 2-7 f: ffffffff 481 - 9-10 x: xxxxxxxxxd 482 - 1-7 s: mssssdsksssdsssz 483 - 11-15 t: jtttttltmttgttthz 484 - 5-12 j: jqjjjjfndzjdjjjjjjjn 485 - 9-13 r: rrrrrrrrrrrrj 486 - 5-9 x: xxjxpcqxxcxznn 487 - 2-9 c: psdddswdcpd 488 - 4-10 f: fsffxffffmr 489 - 7-12 j: jxvjjjrjjhjfc 490 - 4-5 q: bqqhj 491 - 1-4 f: fwbclqb 492 - 1-2 k: skqk 493 - 9-11 b: bbbzbkbbhbb 494 - 1-2 g: nggv 495 - 3-7 m: mmfmmmpm 496 - 2-3 m: vpmr 497 - 7-10 d: ddddddjddm 498 - 2-15 t: hgvsftrbzglvmpwhsmp 499 - 1-5 t: qtttt 500 - 11-13 p: pppppppppppphp 501 - 4-5 p: cvqpzvpppfh 502 - 2-3 f: bbftxfnmb 503 - 2-3 r: rlrr 504 - 1-4 m: mvms 505 - 3-14 m: gfmprfxpvzhmhm 506 - 2-8 j: jdsjjlfl 507 - 8-12 k: kkkkskkvkkkkk 508 - 1-7 p: hpfpmpwp 509 - 5-8 x: xxxxxxxhxxxxxx 510 - 3-10 p: mmctgfppppxplpplppj 511 - 3-4 p: zfmpjbhwppk 512 - 13-16 z: zzzzzzzzzzzzvzzzz 513 - 1-3 d: djddd 514 - 2-7 p: nmplwdp 515 - 7-9 l: lglllllll 516 - 7-8 p: ptvsnpcp 517 - 9-10 m: rjnmxthbmg 518 - 5-6 j: jjccjv 519 - 6-8 t: tvcztdttxzkp 520 - 8-12 p: kmrpqdnppskj 521 - 6-8 j: lsjkhjjhbgj 522 - 11-12 x: hxxxlxmxxxtrxxxxk 523 - 3-6 p: pppppcgtpxpppplp 524 - 8-10 s: nphsvswsrssxmdh 525 - 10-11 p: pppcpptppkp 526 - 14-15 z: zzzzzzzzzzzzzcz 527 - 14-18 f: mffngzbffffznctfff 528 - 6-7 t: tttthhtttq 529 - 12-19 l: shqlqnkzwpplqjrwjcv 530 - 1-4 k: khkx 531 - 9-11 d: ddddddddpdrdddd 532 - 3-4 s: mvsssc 533 - 6-7 h: hhhhhhphh 534 - 8-14 v: vvrvsvwrwmpvlv 535 - 2-6 z: zxjvsn 536 - 9-12 f: ffffffffpfftf 537 - 2-5 s: lssmjh 538 - 11-14 k: kkwkkfkbpnjkbkk 539 - 4-15 x: ppcxmjmxvbrkxlqcthx 540 - 1-2 g: bpggz 541 - 3-5 x: vxjxxxnztm 542 - 7-8 r: rrrrrrrhr 543 - 8-13 n: nnblnxnnrmnnq 544 - 1-4 w: wwtxwwwjwwwwdwl 545 - 1-10 d: cddddddwfhdrdddqnd 546 - 1-8 j: jxmjjjrv 547 - 4-7 x: xfxxxxn 548 - 16-18 v: vvvvvvvvvvvvvvvvvvv 549 - 3-5 h: hhhhhh 550 - 9-11 z: zzztvzzhgzr 551 - 3-5 w: fcjwwjwwv 552 - 6-7 z: hszgzsl 553 - 3-9 l: fldswlflrll 554 - 10-11 n: fqbxpfncbln 555 - 7-14 m: jftmkxqhrmmcqmk 556 - 8-9 h: hhqqhkhmh 557 - 3-5 l: lnlqlhdjtd 558 - 4-11 x: lqjxqzlfsfhzjqqnttp 559 - 4-6 c: fccctcc 560 - 8-11 c: cccccccccckcr 561 - 2-3 k: jkxtkjhnkksksrrzhfkk 562 - 7-9 m: nmmmmmmkmrmmdjjms 563 - 5-12 m: mmmmprmsmbmmmm 564 - 1-2 l: lllll 565 - 3-7 m: gmmtchm 566 - 11-16 t: vddbsztmpttvsktp 567 - 9-13 f: ffffffffffffffffff 568 - 3-8 j: hjhldbcznnsx 569 - 5-7 v: vrfpvswbmbvvzv 570 - 6-15 z: bhlvbzvnlntzzzz 571 - 4-6 x: xzjrxcx 572 - 3-4 q: qqsw 573 - 5-6 r: rrrlrrrrrr 574 - 1-7 b: qbbbbbxbbb 575 - 6-7 b: bfbbjdd 576 - 4-11 f: lfrffpfgzqs 577 - 3-5 c: qccncmjgrczzmcz 578 - 9-15 x: vxxxxxnxxxxxxxxrxxxj 579 - 1-2 s: ssnls 580 - 5-9 z: zzpzzzzzszzzzzz 581 - 5-16 z: pzgzxgpwqmzwwlzz 582 - 6-7 c: ccqxccn 583 - 5-6 b: ngmbbs 584 - 2-19 d: cdmnqfjfxgtdwlrnhcd 585 - 9-12 p: thcvkgpcxptpxpp 586 - 3-6 g: sbstjvnhfgdr 587 - 1-18 f: fsffffffffffffffffff 588 - 2-16 f: rfxzxrjpbvfzcftf 589 - 13-14 v: rvxvvnsfcvvvrvvvqg 590 - 4-10 d: tqlddkdpdv 591 - 12-13 r: rrrrrrrrhrwrjdrlnr 592 - 5-6 x: xxvxgnxxxx 593 - 3-4 d: sddd 594 - 5-11 p: jphgprgjjpp 595 - 1-7 f: fjgfdvb 596 - 3-8 x: rpxvndgxx 597 - 1-17 b: jbbrxbbbtxjbrpbbb 598 - 7-10 h: bhhbzmdrkhhvhjx 599 - 1-5 v: fzdgv 600 - 5-7 f: vfdffftffffhflw 601 - 2-20 c: mcbhcvvxwxfvxqlgxpdc 602 - 5-8 w: vwktjwdsccgj 603 - 3-4 d: nntd 604 - 1-7 n: nnncmhnkgqn 605 - 2-6 r: bdvvbrr 606 - 1-15 b: bbbzwbbbbkbgkbp 607 - 3-8 f: slfvsmvftsstff 608 - 3-4 z: pvzzggdnhwzjzgp 609 - 8-9 n: nnnnvnnfn 610 - 4-10 n: nnnlnngnncnn 611 - 8-10 l: vktfwjrmslbh 612 - 3-6 n: nflmqn 613 - 4-5 s: svggkxz 614 - 3-4 w: wwjt 615 - 5-6 t: nbbbdt 616 - 3-8 d: jrjkdghxqwq 617 - 7-8 q: qqqqqqgq 618 - 7-8 k: qxgnkvckpkchqnmxb 619 - 1-5 v: vvvvvv 620 - 6-16 s: stmjwhvrrkfgrsxs 621 - 3-4 s: sdrswqnsjrnhrlds 622 - 12-15 r: rgdrrrrrrrrrrrgtg 623 - 12-14 g: gggggggggggjgggggggg 624 - 1-7 h: phhhhhdnhj 625 - 3-4 v: tknvv 626 - 10-11 j: jjbvjjxjjjjj 627 - 2-5 c: bcbff 628 - 7-11 r: rrrrrrxrrrdrrrrr 629 - 13-16 p: ppppppppppppdppr 630 - 14-16 t: tttttttvtttttttwttt 631 - 3-6 c: hclhccxhmxtjcbmjc 632 - 1-2 x: gxxxxx 633 - 2-3 w: wrwcqt 634 - 2-6 g: gmblggxgg 635 - 1-4 l: lllxpkml 636 - 1-2 d: mdddddd 637 - 4-8 q: qqqxqqqqq 638 - 3-4 v: mwvfvlqvv 639 - 3-6 w: wswwgc 640 - 2-4 d: bdfd 641 - 17-19 l: llllsldlbllllnlllzr 642 - 10-18 j: tjhgvshtbqjtcfcvlr 643 - 4-9 t: ttttttttttfttttttt 644 - 8-9 g: ngsggnbgqgtgglnjgcg 645 - 9-10 d: dddhdddvgbdbd 646 - 8-9 g: gtggvpgmq 647 - 11-15 j: jjqkjsmjkgfvjns 648 - 6-9 t: tqthttvtnttttttg 649 - 1-7 j: sjjjjjjjjjjjjjj 650 - 15-16 g: gggggggzgghgggqd 651 - 10-16 n: nnnnnjnnngnnnnnnnn 652 - 1-6 p: pppppppp 653 - 1-2 k: kdkk 654 - 1-2 b: bjvzqrgbhmgm 655 - 2-4 x: xvxxx 656 - 1-5 j: zjjjjjjj 657 - 2-5 f: lfnpwfz 658 - 1-12 j: hjjjjjjjjjjj 659 - 7-10 l: lllllqhlllllmmlpllll 660 - 11-12 m: mmmnmnmmmmmmmm 661 - 6-8 z: dzzzzfzzpz 662 - 14-15 c: cshjrbzhmmpckcwf 663 - 3-5 q: qqqqz 664 - 11-12 z: zzzzdzczzkprvztzfrdd 665 - 4-5 t: ttstbt 666 - 14-15 k: kkkkkkqkkkkkksr 667 - 1-12 j: jjjjjjjjjjjwgcjzj 668 - 2-3 k: rhkhkkg 669 - 1-16 z: zrzzzzkkhzzflzzzlzzq 670 - 12-13 h: hhhhhhhhhthgjhh 671 - 1-5 j: qqjjczwttz 672 - 11-12 h: hhhhhhhhhhmk 673 - 1-3 p: qpspbpjfq 674 - 1-3 f: ffzf 675 - 11-16 f: qdfmgnfnfvffflfhff 676 - 12-14 b: btwsgnvvljknbbdf 677 - 7-15 b: wdrgltbgdqscbhh 678 - 3-13 j: vwjpjjwjtcpjk 679 - 2-4 l: clxdsfqfdvkfhcgdswl 680 - 9-13 m: mmmmmmgmmpnmmmzmmk 681 - 4-5 x: hxxxx 682 - 1-4 b: bbbb 683 - 4-5 r: rrrrwfrv 684 - 6-9 n: nnnnnnnnsn 685 - 4-7 m: mvmmmmdmm 686 - 4-12 t: ttttttjtttttjttttt 687 - 1-3 c: bccc 688 - 2-3 m: mmcxbw 689 - 1-4 r: rrrrrr 690 - 8-10 l: lllllllplllllllll 691 - 18-19 h: hbhjdhhnnhfshkhhhgh 692 - 6-8 h: hfhwhwph 693 - 1-4 z: cfmz 694 - 2-3 m: vtmmznmvmrs 695 - 7-8 l: llhlwzlmjll 696 - 1-2 m: mmskncxdc 697 - 1-4 d: ndddd 698 - 1-3 m: mmgmmm 699 - 14-15 r: nzrgmcrrgmrxlbr 700 - 2-13 h: htkhhhhhhqhhlhhhkh 701 - 2-4 w: wkwsw 702 - 3-4 w: wmwr 703 - 2-9 v: kdzkhvnkv 704 - 8-9 t: wltttttkbktftk 705 - 9-14 n: vnhdtndfnsncpnf 706 - 3-10 n: jfnwcngtdz 707 - 13-15 j: nqzdlvnvvgnmhjj 708 - 1-12 q: qqqqqqqqqqqqq 709 - 10-12 c: cccdcmscbhcqccc 710 - 1-3 w: bzwwgg 711 - 2-14 d: pdkrpmxxzgcvqkzvvzqd 712 - 6-11 t: tfqvhtbmdztsnwnt 713 - 5-9 l: xllmllvjdds 714 - 6-14 h: pkhthnhxhhhjnscb 715 - 5-7 m: mmmmrmmm 716 - 8-10 x: xxxxxxxwxkxxx 717 - 4-5 k: lmkkkkkskg 718 - 1-2 d: dtdd 719 - 5-7 f: frfwsfr 720 - 4-5 w: rclww 721 - 4-5 g: gkkmtnlhbkgb 722 - 4-6 q: qqqfqqq 723 - 3-4 d: ddjb 724 - 11-13 n: nnnnnnnnnnnnnnnn 725 - 4-6 f: jvkxcffdgd 726 - 3-4 g: ktsgxzn 727 - 14-15 g: gggggggggggggggg 728 - 2-3 n: nqnnn 729 - 2-12 k: kbkpppkrkkjkkkk 730 - 5-7 c: ccccbcccc 731 - 9-10 l: plmrklsclx 732 - 4-11 m: mmmtmmmmmmqlm 733 - 6-7 b: bbbbbbq 734 - 7-9 g: kcgggklzg 735 - 3-6 p: ptxpppppppppppp 736 - 2-4 s: swsss 737 - 7-10 c: cccccccccpcc 738 - 5-7 d: dbddlddddcsdd 739 - 6-7 k: kkkkkkk 740 - 2-4 h: hwnvcj 741 - 1-9 g: nggggggggg 742 - 9-19 b: dzzpzvgwbdbmthmzfbhb 743 - 1-6 v: vrclmqxpvkhbvrfdmc 744 - 4-7 k: sgwktwtttmktrfjzn 745 - 13-16 x: whxxxxxxxxxxxxxsxx 746 - 4-9 z: zzzpzzzzzz 747 - 7-9 t: mwvtbhtxt 748 - 2-3 j: jfjdj 749 - 3-9 t: nrkffvgmtdstkkhtfpn 750 - 3-4 g: ggggxxdjsgrbf 751 - 4-10 x: kgbxbqnqmc 752 - 7-10 t: ztndqctmtttthxkwtlm 753 - 8-12 h: fbvccdshdvhhh 754 - 9-12 f: ffffsfffffjd 755 - 1-3 q: qkqqrvmmkh 756 - 13-14 r: rrrqrrrrrrrrrrrrrrr 757 - 2-3 g: bmdgkz 758 - 6-7 k: kkkkkkjk 759 - 4-9 q: qgzrflqqqd 760 - 12-13 s: brsswsfsvsfssps 761 - 5-9 q: drjcqnmwqbncmqqvcjgh 762 - 7-9 x: xxpxxgzxxxnx 763 - 2-13 s: ssdsssssjshsjsjswn 764 - 1-11 m: fmmmmmmmmsmmmh 765 - 3-8 f: zffrqqhflhvl 766 - 4-11 l: lqfwlxlllnl 767 - 12-16 k: kkkkkkkkkkkdkkkgkkkk 768 - 1-5 s: sssslss 769 - 3-13 n: ntnnnnpnnlndsnn 770 - 13-16 f: nzpfvhfrxpxjfmcfff 771 - 2-3 f: ffbf 772 - 3-7 r: nxrrrqrqnrrlbj 773 - 1-10 p: mppptppppcpppppppd 774 - 9-11 l: ftmflbbljjf 775 - 6-8 r: rrrrrlrrrr 776 - 10-16 k: zqknmwppdtckmpgk 777 - 10-13 t: dpqxttttttttb 778 - 2-4 f: ftff 779 - 9-14 k: krkkkqkkkkdkkrn 780 - 12-17 b: mbxbczbbbbdbbbbbpbnb 781 - 8-9 j: bjjjjjjjqjvxjfjjjjjj 782 - 1-3 s: lspsh 783 - 2-7 p: zpqlvwpmdp 784 - 6-8 q: qqqqqqqtqq 785 - 15-16 z: cxzmdcdzckrhzxzz 786 - 13-17 v: vvvvvvvvvvvvvvvvzv 787 - 6-8 c: ctcccccc 788 - 6-7 v: xjzvvfvjmnrvtvncjmdv 789 - 3-8 m: sqmfbqlm 790 - 3-9 p: bpqpxpfpzqpjjgv 791 - 8-10 n: clxnnnxvnnxnnnnnn 792 - 8-9 m: mmmmmmmmm 793 - 2-6 s: scssss 794 - 9-10 t: xtttttttftttt 795 - 3-5 c: rksck 796 - 16-17 h: ldhchxlhphlnmhvhh 797 - 3-6 b: bnbvlb 798 - 4-5 j: mjjjx 799 - 2-4 j: sklkmtrjpgprqdn 800 - 3-8 l: nllnlnll 801 - 1-6 g: jgbgpt 802 - 14-17 d: cqddcfsjddddxlcdd 803 - 4-6 h: qcqhwc 804 - 6-14 j: fzrkcjrqjssjdjjjjj 805 - 3-4 j: jdfj 806 - 1-3 k: fkpkkkck 807 - 11-12 w: wwwwbwwwwwfg 808 - 6-7 g: wngnhsg 809 - 4-13 d: bddjdddddddddpdddddd 810 - 7-8 k: kmkfkkkp 811 - 5-9 b: btmlgzbbdb 812 - 4-7 j: dxlzwsjdbjcqjsnwq 813 - 9-13 p: pppppmfhpptppp 814 - 16-17 v: vvvvvvvvvvvvvvvxn 815 - 1-7 m: mmmmmmtmm 816 - 1-8 v: vvvvvvvbv 817 - 9-15 t: tttttttttttttttt 818 - 15-17 r: rwrqrrhdrtvrfszrj 819 - 4-9 m: mfddknmcmqhglr 820 - 7-10 k: kkkkkkkkpkklkk 821 - 18-19 c: hpqwwkgtqbrcjxptwnc 822 - 2-3 p: xwppdp 823 - 5-11 r: vnrhrmknrrr 824 - 10-15 f: ffmfffffcfftfdfff 825 - 10-13 m: mmtsmmmmmmmmhmm 826 - 4-16 j: pjlplfvtgrjhvcdjjdmb 827 - 8-14 v: kxrjvdbbmxvrzdp 828 - 6-7 w: wwwwwwgwww 829 - 9-16 f: hhkvlfrvfvpvlzvcfsg 830 - 1-3 k: kkbk 831 - 9-12 d: ddddddddtdddd 832 - 13-16 w: wwwgwwwwwwwxwwwwwww 833 - 4-5 t: swtttpkkpwdt 834 - 5-7 z: zzfzzzp 835 - 1-5 g: grghg 836 - 3-4 n: wjsnnnwsxrx 837 - 8-10 x: xxxxxxpqxc 838 - 4-13 t: tttbtttttttttttt 839 - 1-3 w: wswwn 840 - 1-6 d: dddtddddd 841 - 12-13 x: xxflxxpxxxxxwgrxxx 842 - 1-2 m: mxghmm 843 - 6-11 j: jjjjjjjjjjxj 844 - 1-3 n: nnfnnnnnnnn 845 - 7-11 w: wxwwwwpwwwww 846 - 1-2 q: nqmqfxql 847 - 9-12 m: mmmmvmnmfmmp 848 - 5-7 m: mmmmmmms 849 - 3-4 s: ssqsssssssj 850 - 6-9 c: ccvcmnccccl 851 - 1-17 b: gbbbbbbbbbbbbbbbqbb 852 - 7-10 q: vqqqqxqqql 853 - 9-12 v: vzvvnvtblzrq 854 - 7-8 q: qqqqqqqs 855 - 4-8 q: qtzqcgbqwq 856 - 7-9 c: ccncdmxsccchcxxj 857 - 3-6 q: qqqjlqqxcqdkzqqj 858 - 3-4 k: qckk 859 - 10-12 c: cccccccccccc 860 - 10-18 g: gggggggggggggbgkggn 861 - 2-3 w: wwww 862 - 1-4 k: kkglkqkgzbn 863 - 6-7 l: lklksztlzllllp 864 - 8-10 x: xxxxltxwxnxdvcg 865 - 1-5 w: tvmjw 866 - 3-9 z: hvqqhmpzz 867 - 6-8 x: qzxxdxnxmlgp 868 - 13-17 s: ssssqsssssssjssssxs 869 - 2-8 f: qfhnhfzc 870 - 3-4 v: vvbv 871 - 4-6 j: jjjmjj 872 - 3-4 q: lqqd 873 - 12-14 j: jjjjmjjjjjjcjjjj 874 - 6-9 c: whjbsclch 875 - 14-15 j: jgjjcjkljjmfpjqjjjk 876 - 2-3 z: jbzt 877 - 12-13 b: bbbbbbbbbbbqj 878 - 3-9 s: jhcsgnsscs 879 - 6-8 h: hhhlhlhf 880 - 3-4 j: jmjjcwjpj 881 - 10-11 c: cccccccccdcccccc 882 - 11-12 w: wswwwwwwvwww 883 - 17-18 k: rmzbkcsxrmdwkksstk 884 - 7-8 h: hhhhhthh 885 - 1-2 n: nnqcqlxdsc 886 - 4-11 l: llllllllldlql 887 - 14-20 h: hhhhhhhhhhhhhhhhhhhh 888 - 4-8 r: bhwrrrrrrgrwcmr 889 - 5-16 m: lmdbtwhnzszltgjmhfcb 890 - 4-12 m: mmmvmmmmmmmmm 891 - 1-5 t: qtwnztcftsqjh 892 - 4-12 s: ssdszsssssvslx 893 - 16-18 w: wwwwwwwwwwwwwwwrwq 894 - 7-8 t: ttttttttt 895 - 8-10 r: mxrrrrrrrc 896 - 10-12 g: gggggtpghggsgvcdpjlg 897 - 7-13 q: qlqqpqdqqqqqnqqqq 898 - 7-9 z: zzzzzgzzd 899 - 13-16 c: ccccccccccccxccb 900 - 4-9 l: jbsssqpjl 901 - 7-12 s: sslsssdksnsssqmrsc 902 - 9-14 w: cwqsssmkbgwmqzrw 903 - 1-5 v: vljdvzqvgjhcgbn 904 - 4-7 w: nxqxgww 905 - 7-9 w: wwwtwlwqxwww 906 - 14-18 q: qwncqqqjmmlzqqqqnq 907 - 2-8 g: ggggggggg 908 - 5-6 g: ggpgkgg 909 - 12-13 r: rrrrrrrrrrrph 910 - 14-15 c: cswccccccvccmcs 911 - 11-15 p: jppxbqzcdzppxjv 912 - 6-9 f: fffnfffdcc 913 - 7-10 x: xnrdxxtwxx 914 - 2-6 s: gdshsbcsssss 915 - 5-9 d: dwtcdddffsdzdzcvbdd 916 - 2-3 l: kqlfjqj 917 - 7-9 s: tmsklsfsp 918 - 2-4 c: lkbck 919 - 2-9 x: jtxslmdpxpkqfjjb 920 - 18-19 v: vvvvvvvvvvvvvvvvvmd 921 - 9-10 x: zgxdjvxqxgxkcm 922 - 11-12 d: dddqddddddvdddd 923 - 1-4 d: ddlvd 924 - 2-4 t: tztfwtjwt 925 - 5-6 j: gjjsfjgvjjcwzjm 926 - 8-11 g: kvsqgmqgdmgxdpg 927 - 6-11 b: bpjbfrrpbvb 928 - 1-10 j: tmjjjjjjbjcjjjjjj 929 - 14-18 t: tttttttttttttttttttt 930 - 11-12 r: rjjvggmpwvrhn 931 - 10-12 t: tttttttttctttt 932 - 1-8 s: lbssjsssgsss 933 - 4-12 h: pchchhtthdhhch 934 - 7-8 m: mhrpkbmdmj 935 - 5-6 f: sffdsf 936 - 4-7 z: zzzkzzkzzzz 937 - 1-5 c: nccjw 938 - 1-2 l: wsgllckll 939 - 1-9 k: mwvhwgvfkvmpwnntjbk 940 - 1-6 v: vvvvvvvvvvv 941 - 2-8 m: ttzhlrrmbt 942 - 3-4 x: xqklgxxx 943 - 12-13 v: rvvvvvvvfvvmvv 944 - 6-13 n: nnnnnnnnnnnnnn 945 - 5-6 s: bpnsssj 946 - 3-9 q: xtddtwfcstjrqbslmjsz 947 - 8-9 g: xxkxxgzgg 948 - 1-12 w: gwwwwwwwwwwtw 949 - 4-5 p: pppppp 950 - 1-2 x: jpxvxxxxxnmkx 951 - 3-4 n: ddnn 952 - 5-6 t: ztkmttmb 953 - 2-5 j: rrcjj 954 - 2-5 s: lccgw 955 - 5-6 f: fffflfff 956 - 3-4 h: ptbh 957 - 2-3 s: sssgm 958 - 6-8 g: gggggpggg 959 - 3-4 d: qrll 960 - 8-15 b: zbxpbbbbbbhbbbpbp 961 - 2-3 r: rrrr 962 - 13-15 c: cdccqkcvckcccvc 963 - 10-15 z: hxctzzvzzzzbfzz 964 - 3-4 q: qwtqqncqcdxq 965 - 1-6 l: jlllsl 966 - 5-6 g: ggggbxggggrggggg 967 - 4-6 m: mmmsmdmpmmmm 968 - 5-9 d: ddddddqdgddd 969 - 2-19 d: dxdddddddddddddddddd 970 - 8-9 z: zzzzztzpzqzzdh 971 - 7-12 j: jjfjsmsxjwjjvtcbjb 972 - 2-10 l: dxkrwjbvlsgpzcmk 973 - 13-14 h: hhhhrqlhhhhhhhh 974 - 2-8 v: jvvvvvvjv 975 - 13-14 q: qqjqqqfjqqqqqz 976 - 5-12 d: pllddwcgctfbkfx 977 - 17-18 f: ffffffffffffffffmjff 978 - 7-17 w: sqmbczwtwpwkhngtw 979 - 15-17 l: lllllllllllzllplllll 980 - 5-8 c: cccqfccccccc 981 - 8-14 k: xnjcftlkvhkmkr 982 - 4-5 q: qqqqqj 983 - 8-11 m: wzxcmwgmmvmgq 984 - 11-15 h: hnhtnhnhhkghhzhh 985 - 11-13 g: rgdgqgvmqjggg 986 - 8-13 v: mtjkbnvvvhvvv 987 - 4-5 v: vcvhv 988 - 5-12 w: fqvwnzcwlntwpcwf 989 - 1-15 j: jjjjjjjzjjjjspwj 990 - 2-4 x: jmrxxkpncwdcftw 991 - 1-2 b: gbbqbf 992 - 8-11 k: kxkkkkzpkkzkkm 993 - 1-4 v: mpqp 994 - 6-7 p: lxdptfp 995 - 3-4 s: sxss 996 - 16-18 d: gxzglqmddffqxqvppr 997 - 4-6 f: fffmfff 998 - 13-16 m: zfmcnzxfvmcmqmhcctv 999 - 1-8 n: nnnnnnnm 1000 - 8-9 v: vvvvvvvvvg
-37
2020/2/solution.exs
··· 1 - defmodule Solution do 2 - def read(path) do 3 - path 4 - |> File.stream!() 5 - |> Enum.map(&String.trim/1) 6 - |> Enum.map(&parse/1) 7 - end 8 - 9 - defp parse(input) do 10 - [spec, pass] = String.split(input, ": ", parts: 2) 11 - [range, <<char>>] = String.split(spec, " ", parts: 2) 12 - [min, max] = 13 - range 14 - |> String.split("-", parts: 2) 15 - |> Enum.map(&String.to_integer/1) 16 - 17 - {min..max, char, pass} 18 - end 19 - 20 - def validate_1({range, char, pass}) do 21 - count = for <<^char <- pass>>, reduce: 0, do: (n -> n + 1) 22 - 23 - count in range 24 - end 25 - 26 - def validate_2({a..b, char, pass}) do 27 - <<char_1>> = binary_part(pass, a - 1, 1) 28 - <<char_2>> = binary_part(pass, b - 1, 1) 29 - 30 - char_1 != char_2 and char in [char_1, char_2] 31 - end 32 - end 33 - 34 - data = Solution.read("2/input.txt") 35 - 36 - IO.inspect(Enum.count(data, &Solution.validate_1/1), label: "task 1") 37 - IO.inspect(Enum.count(data, &Solution.validate_2/1), label: "task 2")
+87
2020/day01.livemd
··· 1 + <!-- livebook:{"persist_outputs":true} --> 2 + 3 + # Day 01 4 + 5 + ```elixir 6 + Mix.install([:kino_aoc]) 7 + ``` 8 + 9 + ## Section 10 + 11 + <!-- livebook:{"attrs":"eyJhc3NpZ25fdG8iOiJwdXp6bGVfaW5wdXQiLCJkYXkiOiIxIiwic2Vzc2lvbl9zZWNyZXQiOiJBRFZFTlRfT0ZfQ09ERV9TRVNTSU9OIiwieWVhciI6IjIwMjAifQ","chunks":null,"kind":"Elixir.KinoAOC.HelperCell","livebook_object":"smart_cell"} --> 12 + 13 + ```elixir 14 + {:ok, puzzle_input} = 15 + KinoAOC.download_puzzle("2020", "1", System.fetch_env!("LB_ADVENT_OF_CODE_SESSION")) 16 + ``` 17 + 18 + <!-- livebook:{"output":true} --> 19 + 20 + ``` 21 + {:ok, 22 + "1706\n1466\n1427\n1744\n1684\n1386\n2001\n1750\n1753\n1770\n1559\n1616\n1408\n1860\n1940\n2002\n1862\n1918\n1456\n1209\n1840\n1462\n1783\n1644\n1901\n1791\n1506\n2005\n1338\n1383\n1420\n1631\n1784\n1897\n1771\n1588\n1955\n1937\n1392\n1396\n1803\n1429\n1407\n1698\n1562\n1913\n1678\n1198\n1398\n1703\n1831\n1489\n1782\n1864\n1708\n1397\n1915\n1953\n1395\n1610\n1549\n1564\n1973\n1931\n2009\n1980\n1800\n1443\n1993\n1900\n1964\n1581\n1904\n1665\n1567\n1057\n1805\n1402\n1878\n1729\n1825\n1682\n1719\n1469\n1004\n1591\n1594\n811\n1523\n1424\n1756\n373\n1442\n1718\n1411\n1892\n1820\n1977\n1871\n1890\n1653\n1372\n1475\n1476\n1422\n2004\n1755\n1676\n639\n1425\n1853\n1712\n1525\n1514\n1455\n1658\n1963\n1579\n1861\n1458\n1474\n1613\n1681\n1586\n1441\n1499\n1865\n1735\n1989\n1952\n792\n1669\n1509\n1481\n1893\n1445\n1834\n1779\n1732\n1826\n1595\n1829\n449\n1920\n1707\n1780\n1935\n1867\n1769\n1107\n919\n1382\n1604\n1875\n1453\n1496\n1946\n1659\n1570\n1692\n1630\n1638\n1922\n1691\n1580\n1880\n1482\n1762\n1775\n1376\n1434\n1856\n1971\n1646\n1951\n1416\n1889\n1773\n1814\n1471\n1488\n1736\n1743\n1459\n1389\n1498\n1663\n1611\n1727\n1699\n1624\n1511\n1767\n1754\n1785\n1491\n1235\n1510\n1500\n1485"} 23 + ``` 24 + 25 + ```elixir 26 + input = 27 + puzzle_input 28 + |> String.split("\n", trim: true) 29 + |> Enum.map(&String.to_integer/1) 30 + |> Enum.sort() 31 + ``` 32 + 33 + <!-- livebook:{"output":true} --> 34 + 35 + ``` 36 + [373, 449, 639, 792, 811, 919, 1004, 1057, 1107, 1198, 1209, 1235, 1338, 1372, 1376, 1382, 1383, 37 + 1386, 1389, 1392, 1395, 1396, 1397, 1398, 1402, 1407, 1408, 1411, 1416, 1420, 1422, 1424, 1425, 38 + 1427, 1429, 1434, 1441, 1442, 1443, 1445, 1453, 1455, 1456, 1458, 1459, 1462, 1466, 1469, 1471, 39 + 1474, ...] 40 + ``` 41 + 42 + ```elixir 43 + defmodule Report do 44 + def find([], _, _), do: nil 45 + def find(_, _, sum) when sum < 0, do: nil 46 + def find([a | _], 1, a), do: [a] 47 + 48 + def find([a | rest], n, sum) do 49 + case find(rest, n - 1, sum - a) do 50 + nil -> find(rest, n, sum) 51 + nums when is_list(nums) -> [a | nums] 52 + end 53 + end 54 + end 55 + ``` 56 + 57 + <!-- livebook:{"output":true} --> 58 + 59 + ``` 60 + {:module, Report, <<70, 79, 82, 49, 0, 0, 8, ...>>, {:find, 3}} 61 + ``` 62 + 63 + ## Part 1 64 + 65 + ```elixir 66 + Report.find(input, 2, 2020) |> Enum.product() 67 + ``` 68 + 69 + <!-- livebook:{"output":true} --> 70 + 71 + ``` 72 + 980499 73 + ``` 74 + 75 + ## Part 2 76 + 77 + ```elixir 78 + Report.find(input, 3, 2020) |> Enum.product() 79 + ``` 80 + 81 + <!-- livebook:{"output":true} --> 82 + 83 + ``` 84 + 200637446 85 + ``` 86 + 87 + <!-- livebook:{"offset":2857,"stamp":{"token":"XCP.XnJnYSRQgz2UOQ3-aY4Wm_4ac7Pe55mGzaFCONZvS7KA-jlyVQYcIKjXR6X8BV8b5w148g-6oYynzwJ-it0om0UAWkB3kajGGEYsa5LCmZRmUjW5iuT6zTZ5VoYqHjiwSc0","version":2}} -->
+133
2020/day02.livemd
··· 1 + <!-- livebook:{"persist_outputs":true} --> 2 + 3 + # Day 02 4 + 5 + ```elixir 6 + Mix.install([:kino_aoc]) 7 + ``` 8 + 9 + ## Section 10 + 11 + <!-- livebook:{"attrs":"eyJhc3NpZ25fdG8iOiJwdXp6bGVfaW5wdXQiLCJkYXkiOiIyIiwic2Vzc2lvbl9zZWNyZXQiOiJBRFZFTlRfT0ZfQ09ERV9TRVNTSU9OIiwieWVhciI6IjIwMjAifQ","chunks":null,"kind":"Elixir.KinoAOC.HelperCell","livebook_object":"smart_cell"} --> 12 + 13 + ```elixir 14 + {:ok, puzzle_input} = 15 + KinoAOC.download_puzzle("2020", "2", System.fetch_env!("LB_ADVENT_OF_CODE_SESSION")) 16 + ``` 17 + 18 + <!-- livebook:{"output":true} --> 19 + 20 + ``` 21 + {:ok, 22 + "5-10 b: bhbjlkbbbbbbb\n3-4 j: hjvj\n8-9 p: pmljtsttp\n3-4 t: hvtttqhdjmmnbqwbgfs\n4-6 m: mblwtzmvmdjkkmmtsckm\n6-9 f: ffffftfff\n1-3 g: xggg\n3-10 k: rwkhttkxxdpnlkq\n3-11 w: wwmwwwwwwwww\n5-7 f: fffffffff\n1-4 l: lglllbc\n2-5 n: njnnn\n6-8 t: tcjtltttttdttjttbt\n10-20 d: djddddccdbdddddddndd\n2-5 z: gzppzhrhzdthnpcr\n13-14 p: plvppptppppzppbkpk\n11-13 t: jjtjvzfhsrtsmkdhj\n11-12 r: rtrdvrrxrrxrzr\n2-6 x: dxsvxgvk\n7-11 x: hcxxpvxrnmxckkq\n12-17 s: sssssssssssrssssss\n2-4 v: vvpvvvjvvjvvqbvv\n15-18 h: thqhhhgjjqhhnhhznz\n8-11 j: jbmgbtmjtbb\n2-4 d: xxdfvp\n2-7 p: fftlppz\n9-13 d: dfddddddsdddds\n5-7 d: ddddddz\n2-3 h: hfbhhh\n1-4 k: rmkvkkkk\n16-17 w: wwwhwwwwwwwwwwwwq\n5-8 l: gllxllnlqlglrplk\n1-7 p: mhnpspp\n5-13 f: qhwffbtfzmdffztfjs\n2-8 f: fkjhvcbflbwhggtbbcb\n2-3 m: bcmldxmdh\n6-7 p: ppcpppw\n3-10 m: mmmmmmmmmj\n4-12 s: ssjssssssssmsss\n2-5 j: rmjnjtjjjj\n2-3 q: qqdqq\n10-15 v: vvvvvvvvvvvvvvdvvvvv\n1-4 w: wwwc\n4-14 m: mmsmmmvmmmmmqqmmmmm\n7-10 d: ddcdddzdddddd\n4-5 h: hhhhh\n9-17 p: ppppppppqppppppppp\n6-7 m: mqtmnms\n4-5 s: pssss\n2-6 t: tdttttpwttt\n7-8 l: llsxsllzlwl\n7-10 f: fflffffkqffffm\n3-4 f: cdfp\n3-4 z: zzzz\n6-7 s: sbssdvs\n3-4 g: ggdv\n11-16 l: lllllnbsqlfzwrfljkh\n3-4 k: tqkxxfk\n3-17 s: xshmvlmzrjdpnvlssn\n1-16 l: lzzvllgktckllmlltl\n5-6 l: qlltvl\n6-7 p: npvbpcp\n4-6 g: gmgvgn\n12-13 r: rrnlrrwrtvrrrrcrrrv\n11-12 h: hhvxhhhhwjhd\n13-14 p: pdppcsjtppppppvtwpj\n10-14 l: hljjkjxlfwzlllclzq\n18-19 z: zzzzzzzzzzzzzzztzhn\n11-12 p: hpspwrkqbnpp\n16-18 h: hhhhhhghhhhhhhhwhbh\n1-2 p: vpxnqqbgrxprmh\n13-19 m: mmmmmmmmmmmmqmmmmqm\n1-2 n: ncndsnl\n9-10 x: xxxxxxxxxgxxd\n9-12 w: wwwwwwwwwwzwwdfgwwp\n3-5 h: nqhvhzb\n4-5 j: jjjns\n10-12 f: ffffffffffff\n7-10 v: mgvrwvvsjw\n3-5 m: wpmmm\n3-10 s: ffsbvjdslsnshqs\n9-10 z: mgzzbjzqsz\n3-13 d: ddjdddddddddnd\n2-4 l: tqkfhpwvvmc\n1-3 z: zzzzzn\n3-5 l: ctljlckdpnlchrzbc\n6-7 v: hqvcvvv\n11-13 v: vvvvcvvvvvvvvvv\n8-9 t: ztndmlwdb\n5-6 v: fdxxrvwpw\n1-4 n: xnkb\n16-17 v: vvvvvvvvvvvvvvvvnvv\n12-14 b: bbbbbxbbbdbgbcb\n1-7 w: wwwwwwrwwjtwk\n3-10 d: bxnhbhrmgd\n4-5 k: kkknkk\n2-4 n: bndln\n3-10 p: vpkppcppppcplpksp\n9-10 d: fhbzbdzqsdxlhnbt\n11-13 z: zzmzzzzwzpzzz\n12-17 b: hkbcbbhthbrbbdgbl\n11-13 c: cpccnxccxbjtm\n5-6 n: nnrmnfnsnn\n3-8 l: sslkllwljcgl\n1-9 p: fpppzzpppppphtrhppp\n4-11 h: kskbvrqhdjph\n3-9 r: rsrvxnrchtrrrr\n4-5 n: nwbln\n3-4 g: gjgv\n13-14 r: rrrrrrsrtrrrrrrrr\n10-15 m: mmmmmmmmmtmmgmm\n5-6 k: wkpkkqk\n10-11 l: wlbllglkbltblrqlllm\n6-7 d: ddddsrddd\n17-18 v: vvvvvvvvvvvfvgvvsvv\n6-10 n: nngnnnnvnknn\n7-8 t: qdztnrnt\n5-11 d: dfbdxqbmsdd\n1-6 n: znnvqdnx\n7-9 k: kkkkkkkkl\n5-6 m: mmmszmtmmks\n1-5 l: wlllllll\n13-14 m: mcmmmmmlmmmmjmmm\n1-7 k: kklkjvckb\n14-15 d: ddddmddddmddddddd\n18-19 k: kfkkkkkkkkkkkkkkkpkk\n3-4 z: czjzc\n17-18 t: btttttjmltrttxctgt\n1-4 c: cccscqcccc\n9-14 k: tcwcstszkvhjfmrqpkp\n3-8 c: ccccccjcscncp\n10-11 d: dddddddddmdd\n3-5 m: rgmfmkmd\n1-5 k: mfhnk\n4-5 x: cwnxftlt\n1-3 n: flnqmnnhnn\n2-5 f: vwlcnsfd\n4-8 c: cccccccbc\n10-12 v: dhfvlvbvspjldzch\n7-16 f: ffsmffffjffqfpffff\n10-13 n: njtrrnnqntjtn\n13-17 f: frffcfffrjffffdfpff\n5-10 m: mmmmvfmmmmmmmmdm\n5-6 v: vvvvvzvvvvv\n6-12 r: dqrrcrhrhjsrrr\n8-14 z: zzzzzzzlzzzgzsz\n5-9 q: qkwzsvwdg\n12-13 d: vzjfvddgctfdrr\n6-7 f: mgndffb\n2-5 x: nxxmx\n7-9 c: cmxsccccf\n1-7 n: nnnnnnnnnn\n6-8 g: gggglfgp\n2-13 v: kvwxcrfmpfcfdrgv\n5-7 p: tpplpffpccpp\n8-12 m: mmmmmmmmmmmxm\n9-10 v: vvvvvvvvvcv\n4-5 m: mbnmmkknmmwshmkthj\n8-9 t: cltntrtpqwtcsftttf\n8-16 f: ffffrffpffffffffff\n6-8 t: sttcctttdttdwjdndtt\n5-9 k: ckkkkvdkvkk\n1-3 f: ffczfpgmf\n2-4 w: wwlwwd\n1-9 d: lddbhdddmtfdmdzdrdhd\n16-17 h: xfqlbhhpbnclvztzzzx\n2-7 r: rrbntqrrsrkrm\n1-4 r: qwrr\n12-14 b: tvbbzjbbbbbbbn\n5-7 h: hhjvghth\n2-3 d: dndrcx\n8-9 c: ccccscccpc\n5-8 s: srcsszcsp\n13-15 g: gggggggglggggglggggg\n11-13 b: bbbbbfrbfbbgbb\n1-8 b: jbbkqbbbpbbbbbbp\n11-14 n: nnnnnnnnnnmnnnn\n1-4 g: qsggg\n14-15 l: sllslllggllljkdlm\n1-5 s: pvssbspdsshsssssrs\n7-10 c: ccccccmcpgcc\n6-14 m: bcfkpmvmcmmjml\n1-3 n: ncnnnnn\n12-14 j: bjfjxjjpjrjjjxjjk\n10-12 v: vfvvvvvvqjvvvwvwt\n6-13 d: stddxdnjrddhwgdhrfjf\n5-6 w: qcwhnwwk\n2-3 x: mcxfxckptzvw\n12-20 b: lvgvbxsxxlvbhfcxbtzr\n1-2 d: ddbdqd\n5-10 h: mhtnjvhhhs\n2-6 z: ztzzdxzzzqbvg\n2-7 t: ttjkqztr\n3-4 g: bgvggrxrhtlklfj\n4-5 q: qqqvq\n1-3 c: ccpc\n4-6 j: jjrdjj\n8-11 c: ncvshccccccsb\n" <> ...} 23 + ``` 24 + 25 + ```elixir 26 + data = 27 + puzzle_input 28 + |> String.split("\n", trim: true) 29 + |> Enum.map(fn input -> 30 + [spec, pass] = String.split(input, ": ", parts: 2) 31 + [range, char] = String.split(spec, " ", parts: 2) 32 + 33 + [min, max] = 34 + range 35 + |> String.split("-", parts: 2) 36 + |> Enum.map(&String.to_integer/1) 37 + 38 + {min..max, char, pass} 39 + end) 40 + ``` 41 + 42 + <!-- livebook:{"output":true} --> 43 + 44 + ``` 45 + [ 46 + {5..10, "b", "bhbjlkbbbbbbb"}, 47 + {3..4, "j", "hjvj"}, 48 + {8..9, "p", "pmljtsttp"}, 49 + {3..4, "t", "hvtttqhdjmmnbqwbgfs"}, 50 + {4..6, "m", "mblwtzmvmdjkkmmtsckm"}, 51 + {6..9, "f", "ffffftfff"}, 52 + {1..3, "g", "xggg"}, 53 + {3..10, "k", "rwkhttkxxdpnlkq"}, 54 + {3..11, "w", "wwmwwwwwwwww"}, 55 + {5..7, "f", "fffffffff"}, 56 + {1..4, "l", "lglllbc"}, 57 + {2..5, "n", "njnnn"}, 58 + {6..8, "t", "tcjtltttttdttjttbt"}, 59 + {10..20, "d", "djddddccdbdddddddndd"}, 60 + {2..5, "z", "gzppzhrhzdthnpcr"}, 61 + {13..14, "p", "plvppptppppzppbkpk"}, 62 + {11..13, "t", "jjtjvzfhsrtsmkdhj"}, 63 + {11..12, "r", "rtrdvrrxrrxrzr"}, 64 + {2..6, "x", "dxsvxgvk"}, 65 + {7..11, "x", "hcxxpvxrnmxckkq"}, 66 + {12..17, "s", "sssssssssssrssssss"}, 67 + {2..4, "v", "vvpvvvjvvjvvqbvv"}, 68 + {15..18, "h", "thqhhhgjjqhhnhhznz"}, 69 + {8..11, "j", "jbmgbtmjtbb"}, 70 + {2..4, "d", "xxdfvp"}, 71 + {2..7, "p", "fftlppz"}, 72 + {9..13, "d", "dfddddddsdddds"}, 73 + {5..7, "d", "ddddddz"}, 74 + {2..3, "h", "hfbhhh"}, 75 + {1..4, "k", "rmkvkkkk"}, 76 + {16..17, "w", "wwwhwwwwwwwwwwwwq"}, 77 + {5..8, "l", "gllxllnlqlglrplk"}, 78 + {1..7, "p", "mhnpspp"}, 79 + {5..13, "f", "qhwffbtfzmdffztfjs"}, 80 + {2..8, "f", "fkjhvcbflbwhggtbbcb"}, 81 + {2..3, "m", "bcmldxmdh"}, 82 + {6..7, "p", "ppcpppw"}, 83 + {3..10, "m", "mmmmmmmmmj"}, 84 + {4..12, "s", "ssjssssssssmsss"}, 85 + {2..5, "j", "rmjnjtjjjj"}, 86 + {2..3, "q", "qqdqq"}, 87 + {10..15, "v", "vvvvvvvvvvvvvvdvvvvv"}, 88 + {1..4, "w", "wwwc"}, 89 + {4..14, "m", "mmsmmmvmmmmmqqmmmmm"}, 90 + {7..10, "d", "ddcdddzdddddd"}, 91 + {4..5, "h", "hhhhh"}, 92 + {9..17, "p", "ppppppppqppppppppp"}, 93 + {6..7, "m", ...}, 94 + {4..5, ...}, 95 + {...}, 96 + ... 97 + ] 98 + ``` 99 + 100 + ## Part 1 101 + 102 + ```elixir 103 + Enum.count(data, fn {range, <<char>>, pass} -> 104 + count = for <<^char <- pass>>, reduce: 0, do: (n -> n + 1) 105 + 106 + count in range 107 + end) 108 + ``` 109 + 110 + <!-- livebook:{"output":true} --> 111 + 112 + ``` 113 + 439 114 + ``` 115 + 116 + ## Part 2 117 + 118 + ```elixir 119 + Enum.count(data, fn {a..b//1, char, pass} -> 120 + char_1 = binary_part(pass, a - 1, 1) 121 + char_2 = binary_part(pass, b - 1, 1) 122 + 123 + char_1 != char_2 and char in [char_1, char_2] 124 + end) 125 + ``` 126 + 127 + <!-- livebook:{"output":true} --> 128 + 129 + ``` 130 + 584 131 + ``` 132 + 133 + <!-- livebook:{"offset":7223,"stamp":{"token":"XCP.hfrcfr0pT-nj7-j4nWaJo4YFPkw0SkyS5kkbU0031loYsccpQ9B5PfrwwU0eiuPMlC2H5sN-qI3EDIk0RJZEkgYu4EvABNl_2k4g0_4hLnQxFsTtp8-IrIUPuzEQJLdGAJ4","version":2}} -->