My attempts to solve puzzles of Advent of Code
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

day 3

+1345 -6
+6 -3
AoC.cabal
··· 14 14 default-extensions: NoImplicitPrelude 15 15 16 16 build-depends: base <5 && >=3 17 - , papa 18 - , text 19 - , containers 17 + , papa >= 0.3.0 18 + , text >= 1.2.0 19 + , containers >= 0.6 20 + , megaparsec >= 7.0.0 21 + , parser-combinators >= 1.0.0 20 22 21 23 hs-source-dirs: src 22 24 23 25 exposed-modules: AoC 24 26 AoC.Y2018.Day1 25 27 AoC.Y2018.Day2 28 + AoC.Y2018.Day3
+6 -2
AoC.nix
··· 1 - { mkDerivation, base, containers, papa, stdenv, text }: 1 + { mkDerivation, base, containers, megaparsec, papa 2 + , parser-combinators, stdenv, text 3 + }: 2 4 mkDerivation { 3 5 pname = "AoC"; 4 6 version = "0.1.0.0"; 5 7 src = ./.; 6 - libraryHaskellDepends = [ base containers papa text ]; 8 + libraryHaskellDepends = [ 9 + base containers megaparsec papa parser-combinators text 10 + ]; 7 11 license = stdenv.lib.licenses.bsd3; 8 12 }
+1233
data/input-d3-p1
··· 1 + #1 @ 393,863: 11x29 2 + #2 @ 675,133: 15x26 3 + #3 @ 690,605: 25x22 4 + #4 @ 342,752: 19x17 5 + #5 @ 840,36: 14x18 6 + #6 @ 671,653: 10x23 7 + #7 @ 685,354: 25x18 8 + #8 @ 101,902: 13x24 9 + #9 @ 700,319: 21x20 10 + #10 @ 221,880: 28x15 11 + #11 @ 560,609: 10x14 12 + #12 @ 471,549: 23x14 13 + #13 @ 150,849: 27x14 14 + #14 @ 953,65: 29x23 15 + #15 @ 955,88: 11x10 16 + #16 @ 859,624: 21x19 17 + #17 @ 869,902: 16x29 18 + #18 @ 126,834: 24x17 19 + #19 @ 873,627: 18x15 20 + #20 @ 853,240: 18x28 21 + #21 @ 863,830: 18x11 22 + #22 @ 54,732: 20x23 23 + #23 @ 253,825: 20x10 24 + #24 @ 261,710: 14x13 25 + #25 @ 383,456: 24x25 26 + #26 @ 792,324: 28x19 27 + #27 @ 163,336: 11x12 28 + #28 @ 983,534: 14x11 29 + #29 @ 879,249: 11x23 30 + #30 @ 702,348: 21x28 31 + #31 @ 730,51: 18x18 32 + #32 @ 709,647: 26x26 33 + #33 @ 850,90: 26x28 34 + #34 @ 56,194: 14x14 35 + #35 @ 285,967: 23x28 36 + #36 @ 868,281: 27x22 37 + #37 @ 243,692: 11x18 38 + #38 @ 111,508: 15x20 39 + #39 @ 851,414: 23x12 40 + #40 @ 717,593: 10x24 41 + #41 @ 61,369: 18x13 42 + #42 @ 491,754: 25x24 43 + #43 @ 227,891: 18x25 44 + #44 @ 227,893: 27x19 45 + #45 @ 711,780: 19x23 46 + #46 @ 89,576: 14x28 47 + #47 @ 734,966: 28x19 48 + #48 @ 653,968: 20x20 49 + #49 @ 913,451: 24x19 50 + #50 @ 699,125: 21x25 51 + #51 @ 99,917: 12x25 52 + #52 @ 789,137: 13x22 53 + #53 @ 534,657: 17x24 54 + #54 @ 119,962: 25x12 55 + #55 @ 115,16: 21x19 56 + #56 @ 513,833: 16x28 57 + #57 @ 500,501: 22x12 58 + #58 @ 950,424: 25x21 59 + #59 @ 960,443: 24x21 60 + #60 @ 718,539: 11x16 61 + #61 @ 732,525: 24x14 62 + #62 @ 305,577: 16x17 63 + #63 @ 866,514: 22x21 64 + #64 @ 357,85: 14x22 65 + #65 @ 450,285: 19x11 66 + #66 @ 806,136: 21x11 67 + #67 @ 797,916: 12x16 68 + #68 @ 247,681: 22x10 69 + #69 @ 237,705: 12x27 70 + #70 @ 749,342: 28x28 71 + #71 @ 304,932: 10x14 72 + #72 @ 206,388: 26x12 73 + #73 @ 930,621: 23x26 74 + #74 @ 590,123: 18x23 75 + #75 @ 404,510: 29x20 76 + #76 @ 654,314: 28x20 77 + #77 @ 112,363: 13x22 78 + #78 @ 705,823: 11x21 79 + #79 @ 537,561: 17x11 80 + #80 @ 592,380: 12x19 81 + #81 @ 755,159: 15x18 82 + #82 @ 459,831: 15x11 83 + #83 @ 566,722: 28x23 84 + #84 @ 620,664: 20x11 85 + #85 @ 56,601: 10x17 86 + #86 @ 850,112: 11x25 87 + #87 @ 972,347: 16x16 88 + #88 @ 758,971: 22x20 89 + #89 @ 517,232: 15x10 90 + #90 @ 562,634: 12x16 91 + #91 @ 826,979: 17x15 92 + #92 @ 296,619: 26x18 93 + #93 @ 171,49: 15x23 94 + #94 @ 945,85: 12x26 95 + #95 @ 515,355: 11x15 96 + #96 @ 303,967: 11x24 97 + #97 @ 966,9: 24x17 98 + #98 @ 643,321: 11x12 99 + #99 @ 607,657: 17x22 100 + #100 @ 429,596: 23x11 101 + #101 @ 825,913: 24x13 102 + #102 @ 281,826: 10x29 103 + #103 @ 582,189: 19x24 104 + #104 @ 96,379: 16x22 105 + #105 @ 819,573: 19x20 106 + #106 @ 346,474: 25x22 107 + #107 @ 139,804: 10x19 108 + #108 @ 870,708: 22x23 109 + #109 @ 306,534: 17x20 110 + #110 @ 494,285: 23x20 111 + #111 @ 177,784: 22x22 112 + #112 @ 195,43: 26x26 113 + #113 @ 346,519: 28x27 114 + #114 @ 206,206: 21x20 115 + #115 @ 648,703: 24x27 116 + #116 @ 762,940: 17x14 117 + #117 @ 706,393: 18x14 118 + #118 @ 602,533: 24x19 119 + #119 @ 150,232: 17x19 120 + #120 @ 729,430: 20x16 121 + #121 @ 343,706: 17x29 122 + #122 @ 99,87: 13x10 123 + #123 @ 939,647: 16x28 124 + #124 @ 365,749: 17x20 125 + #125 @ 835,517: 28x12 126 + #126 @ 574,742: 11x16 127 + #127 @ 143,934: 13x24 128 + #128 @ 31,394: 21x14 129 + #129 @ 658,11: 29x12 130 + #130 @ 372,659: 14x15 131 + #131 @ 148,362: 26x20 132 + #132 @ 623,285: 13x12 133 + #133 @ 560,113: 11x27 134 + #134 @ 162,759: 27x19 135 + #135 @ 198,86: 13x28 136 + #136 @ 614,528: 19x10 137 + #137 @ 291,770: 11x25 138 + #138 @ 666,137: 23x16 139 + #139 @ 497,623: 10x14 140 + #140 @ 651,306: 24x28 141 + #141 @ 352,623: 28x13 142 + #142 @ 849,745: 12x20 143 + #143 @ 950,726: 24x15 144 + #144 @ 208,134: 3x10 145 + #145 @ 206,33: 24x13 146 + #146 @ 310,552: 11x17 147 + #147 @ 403,469: 12x21 148 + #148 @ 710,742: 29x17 149 + #149 @ 732,322: 25x25 150 + #150 @ 89,250: 24x20 151 + #151 @ 960,740: 28x21 152 + #152 @ 401,809: 23x24 153 + #153 @ 552,945: 21x12 154 + #154 @ 688,254: 27x11 155 + #155 @ 754,921: 21x15 156 + #156 @ 648,820: 11x29 157 + #157 @ 797,821: 22x12 158 + #158 @ 34,324: 10x11 159 + #159 @ 949,332: 15x20 160 + #160 @ 175,539: 14x27 161 + #161 @ 920,467: 19x18 162 + #162 @ 577,161: 20x18 163 + #163 @ 937,936: 13x25 164 + #164 @ 353,561: 15x11 165 + #165 @ 172,764: 10x23 166 + #166 @ 94,399: 13x11 167 + #167 @ 163,909: 16x18 168 + #168 @ 357,597: 3x12 169 + #169 @ 185,779: 11x11 170 + #170 @ 287,531: 18x24 171 + #171 @ 927,200: 11x21 172 + #172 @ 811,581: 16x10 173 + #173 @ 844,123: 10x19 174 + #174 @ 60,348: 17x27 175 + #175 @ 8,894: 17x22 176 + #176 @ 750,914: 18x14 177 + #177 @ 116,404: 12x19 178 + #178 @ 962,96: 16x29 179 + #179 @ 243,711: 21x12 180 + #180 @ 393,388: 10x15 181 + #181 @ 961,2: 20x19 182 + #182 @ 887,982: 29x14 183 + #183 @ 848,882: 24x11 184 + #184 @ 504,181: 29x16 185 + #185 @ 197,201: 15x28 186 + #186 @ 231,690: 13x17 187 + #187 @ 187,517: 25x16 188 + #188 @ 720,121: 12x23 189 + #189 @ 951,12: 20x28 190 + #190 @ 93,553: 14x25 191 + #191 @ 517,941: 26x18 192 + #192 @ 820,868: 21x18 193 + #193 @ 635,80: 15x19 194 + #194 @ 37,444: 18x23 195 + #195 @ 490,179: 23x20 196 + #196 @ 132,227: 23x18 197 + #197 @ 599,732: 11x28 198 + #198 @ 98,468: 19x13 199 + #199 @ 443,817: 29x10 200 + #200 @ 455,490: 26x18 201 + #201 @ 113,555: 14x18 202 + #202 @ 875,192: 14x10 203 + #203 @ 676,918: 22x20 204 + #204 @ 63,240: 29x24 205 + #205 @ 140,887: 14x11 206 + #206 @ 251,326: 15x28 207 + #207 @ 281,588: 21x12 208 + #208 @ 179,697: 10x21 209 + #209 @ 622,288: 24x14 210 + #210 @ 842,904: 21x25 211 + #211 @ 432,451: 26x12 212 + #212 @ 57,971: 10x18 213 + #213 @ 112,584: 25x24 214 + #214 @ 894,775: 27x26 215 + #215 @ 474,954: 10x24 216 + #216 @ 261,690: 14x23 217 + #217 @ 849,355: 22x20 218 + #218 @ 215,671: 29x20 219 + #219 @ 159,3: 13x18 220 + #220 @ 665,58: 19x21 221 + #221 @ 428,429: 20x26 222 + #222 @ 215,886: 21x22 223 + #223 @ 330,55: 16x15 224 + #224 @ 195,974: 12x11 225 + #225 @ 522,395: 11x18 226 + #226 @ 790,632: 29x10 227 + #227 @ 733,818: 16x28 228 + #228 @ 288,569: 17x23 229 + #229 @ 891,893: 16x18 230 + #230 @ 889,2: 19x27 231 + #231 @ 333,67: 14x27 232 + #232 @ 441,589: 23x27 233 + #233 @ 310,967: 18x15 234 + #234 @ 246,232: 11x27 235 + #235 @ 970,432: 22x22 236 + #236 @ 521,635: 28x27 237 + #237 @ 877,357: 17x17 238 + #238 @ 295,811: 29x26 239 + #239 @ 500,359: 12x16 240 + #240 @ 684,340: 23x10 241 + #241 @ 878,507: 25x21 242 + #242 @ 162,643: 22x21 243 + #243 @ 580,769: 18x23 244 + #244 @ 708,841: 10x10 245 + #245 @ 832,549: 29x28 246 + #246 @ 841,551: 13x23 247 + #247 @ 685,307: 15x12 248 + #248 @ 367,82: 22x19 249 + #249 @ 631,393: 12x10 250 + #250 @ 171,25: 12x27 251 + #251 @ 749,695: 22x12 252 + #252 @ 598,374: 10x24 253 + #253 @ 330,677: 12x17 254 + #254 @ 717,333: 28x27 255 + #255 @ 578,535: 17x14 256 + #256 @ 531,970: 14x12 257 + #257 @ 966,727: 20x19 258 + #258 @ 324,661: 15x23 259 + #259 @ 360,362: 13x13 260 + #260 @ 718,334: 29x17 261 + #261 @ 96,882: 20x14 262 + #262 @ 117,586: 14x19 263 + #263 @ 435,406: 17x26 264 + #264 @ 138,822: 27x27 265 + #265 @ 741,819: 22x29 266 + #266 @ 375,55: 26x12 267 + #267 @ 979,537: 11x27 268 + #268 @ 365,89: 28x17 269 + #269 @ 112,224: 27x11 270 + #270 @ 720,425: 16x29 271 + #271 @ 933,760: 12x19 272 + #272 @ 886,627: 25x23 273 + #273 @ 179,973: 25x20 274 + #274 @ 68,445: 14x19 275 + #275 @ 200,432: 26x11 276 + #276 @ 713,521: 26x23 277 + #277 @ 180,49: 15x22 278 + #278 @ 753,862: 17x16 279 + #279 @ 345,523: 13x27 280 + #280 @ 547,22: 22x16 281 + #281 @ 47,248: 11x29 282 + #282 @ 816,132: 18x26 283 + #283 @ 453,647: 15x28 284 + #284 @ 175,907: 12x16 285 + #285 @ 883,447: 18x18 286 + #286 @ 642,733: 10x16 287 + #287 @ 330,200: 10x12 288 + #288 @ 672,331: 18x28 289 + #289 @ 305,477: 13x28 290 + #290 @ 840,853: 19x29 291 + #291 @ 520,341: 25x10 292 + #292 @ 32,142: 27x14 293 + #293 @ 495,365: 21x18 294 + #294 @ 920,906: 29x15 295 + #295 @ 136,138: 23x17 296 + #296 @ 520,222: 14x17 297 + #297 @ 407,494: 27x23 298 + #298 @ 801,847: 14x20 299 + #299 @ 958,57: 25x12 300 + #300 @ 858,448: 12x23 301 + #301 @ 434,600: 29x14 302 + #302 @ 501,544: 22x12 303 + #303 @ 287,912: 25x25 304 + #304 @ 649,786: 17x24 305 + #305 @ 565,27: 10x28 306 + #306 @ 555,763: 29x24 307 + #307 @ 967,278: 14x27 308 + #308 @ 721,638: 21x14 309 + #309 @ 516,719: 27x14 310 + #310 @ 705,347: 16x11 311 + #311 @ 552,227: 28x14 312 + #312 @ 963,611: 26x25 313 + #313 @ 680,603: 23x26 314 + #314 @ 609,277: 18x24 315 + #315 @ 520,242: 25x24 316 + #316 @ 699,261: 15x20 317 + #317 @ 21,854: 21x21 318 + #318 @ 364,284: 19x12 319 + #319 @ 311,844: 21x20 320 + #320 @ 365,565: 29x29 321 + #321 @ 918,161: 24x29 322 + #322 @ 364,300: 28x12 323 + #323 @ 564,764: 23x11 324 + #324 @ 107,145: 16x14 325 + #325 @ 352,938: 19x23 326 + #326 @ 174,247: 3x7 327 + #327 @ 22,461: 22x19 328 + #328 @ 753,987: 10x4 329 + #329 @ 241,955: 16x22 330 + #330 @ 752,239: 11x17 331 + #331 @ 670,222: 23x26 332 + #332 @ 805,497: 26x19 333 + #333 @ 370,371: 14x23 334 + #334 @ 242,891: 11x15 335 + #335 @ 33,714: 18x16 336 + #336 @ 326,449: 14x13 337 + #337 @ 29,402: 4x4 338 + #338 @ 704,920: 21x15 339 + #339 @ 321,100: 28x26 340 + #340 @ 645,314: 14x18 341 + #341 @ 930,942: 22x20 342 + #342 @ 874,694: 24x17 343 + #343 @ 402,121: 12x13 344 + #344 @ 119,807: 10x18 345 + #345 @ 97,566: 20x16 346 + #346 @ 500,574: 22x29 347 + #347 @ 297,478: 14x22 348 + #348 @ 695,622: 22x11 349 + #349 @ 167,553: 12x17 350 + #350 @ 302,432: 27x20 351 + #351 @ 365,229: 20x18 352 + #352 @ 241,438: 23x27 353 + #353 @ 585,666: 17x19 354 + #354 @ 363,537: 18x28 355 + #355 @ 104,241: 21x13 356 + #356 @ 187,79: 24x17 357 + #357 @ 833,496: 20x14 358 + #358 @ 119,102: 16x10 359 + #359 @ 566,44: 18x16 360 + #360 @ 423,662: 11x20 361 + #361 @ 112,383: 11x21 362 + #362 @ 719,103: 24x10 363 + #363 @ 406,200: 19x23 364 + #364 @ 506,29: 10x22 365 + #365 @ 390,592: 13x10 366 + #366 @ 156,737: 15x18 367 + #367 @ 29,366: 23x24 368 + #368 @ 93,6: 19x17 369 + #369 @ 700,449: 16x27 370 + #370 @ 790,148: 29x26 371 + #371 @ 532,399: 25x25 372 + #372 @ 433,594: 26x13 373 + #373 @ 473,646: 22x23 374 + #374 @ 512,230: 19x23 375 + #375 @ 801,195: 12x22 376 + #376 @ 777,377: 22x28 377 + #377 @ 913,631: 12x18 378 + #378 @ 473,550: 13x11 379 + #379 @ 812,17: 15x20 380 + #380 @ 928,494: 21x25 381 + #381 @ 684,902: 27x28 382 + #382 @ 326,10: 28x10 383 + #383 @ 764,966: 24x22 384 + #384 @ 288,826: 25x28 385 + #385 @ 560,820: 10x24 386 + #386 @ 77,79: 15x26 387 + #387 @ 716,389: 27x27 388 + #388 @ 373,572: 16x21 389 + #389 @ 63,51: 12x17 390 + #390 @ 801,830: 17x16 391 + #391 @ 370,111: 29x14 392 + #392 @ 343,552: 19x26 393 + #393 @ 915,934: 28x24 394 + #394 @ 729,782: 17x15 395 + #395 @ 410,881: 20x24 396 + #396 @ 853,463: 10x23 397 + #397 @ 877,193: 10x17 398 + #398 @ 401,0: 29x10 399 + #399 @ 190,53: 19x11 400 + #400 @ 616,78: 27x19 401 + #401 @ 456,557: 24x26 402 + #402 @ 594,978: 18x12 403 + #403 @ 612,95: 12x20 404 + #404 @ 177,417: 18x20 405 + #405 @ 628,744: 29x18 406 + #406 @ 711,327: 15x21 407 + #407 @ 953,616: 20x19 408 + #408 @ 94,6: 20x14 409 + #409 @ 272,825: 10x29 410 + #410 @ 200,177: 17x27 411 + #411 @ 937,919: 25x25 412 + #412 @ 708,394: 26x20 413 + #413 @ 945,638: 11x12 414 + #414 @ 780,788: 25x22 415 + #415 @ 870,895: 25x11 416 + #416 @ 518,655: 4x7 417 + #417 @ 168,421: 27x10 418 + #418 @ 493,188: 29x11 419 + #419 @ 695,448: 26x13 420 + #420 @ 849,767: 25x27 421 + #421 @ 77,407: 14x28 422 + #422 @ 359,669: 21x13 423 + #423 @ 318,861: 29x11 424 + #424 @ 690,29: 22x13 425 + #425 @ 244,318: 10x15 426 + #426 @ 328,57: 10x26 427 + #427 @ 347,103: 22x28 428 + #428 @ 154,4: 16x28 429 + #429 @ 586,682: 12x27 430 + #430 @ 147,841: 11x22 431 + #431 @ 781,328: 24x22 432 + #432 @ 421,952: 22x20 433 + #433 @ 297,347: 13x25 434 + #434 @ 184,278: 15x18 435 + #435 @ 833,848: 12x17 436 + #436 @ 84,16: 24x17 437 + #437 @ 541,236: 10x18 438 + #438 @ 510,915: 18x19 439 + #439 @ 599,595: 20x29 440 + #440 @ 303,478: 27x24 441 + #441 @ 129,964: 10x6 442 + #442 @ 915,455: 21x18 443 + #443 @ 271,905: 18x28 444 + #444 @ 718,891: 27x25 445 + #445 @ 759,667: 21x17 446 + #446 @ 793,836: 27x13 447 + #447 @ 389,860: 24x13 448 + #448 @ 623,312: 20x17 449 + #449 @ 758,340: 23x18 450 + #450 @ 124,282: 10x25 451 + #451 @ 51,460: 25x10 452 + #452 @ 26,905: 18x15 453 + #453 @ 726,388: 21x13 454 + #454 @ 369,200: 29x26 455 + #455 @ 739,52: 15x22 456 + #456 @ 543,822: 26x27 457 + #457 @ 31,506: 14x16 458 + #458 @ 440,575: 14x20 459 + #459 @ 706,621: 18x26 460 + #460 @ 788,388: 22x10 461 + #461 @ 650,121: 29x28 462 + #462 @ 43,439: 20x13 463 + #463 @ 807,451: 21x15 464 + #464 @ 897,456: 12x14 465 + #465 @ 948,82: 17x24 466 + #466 @ 44,612: 13x13 467 + #467 @ 876,820: 10x17 468 + #468 @ 899,780: 4x4 469 + #469 @ 878,214: 23x18 470 + #470 @ 954,136: 13x15 471 + #471 @ 424,200: 24x17 472 + #472 @ 745,774: 20x29 473 + #473 @ 341,545: 22x19 474 + #474 @ 493,767: 13x14 475 + #475 @ 551,644: 24x22 476 + #476 @ 501,550: 28x16 477 + #477 @ 133,300: 13x20 478 + #478 @ 882,971: 19x18 479 + #479 @ 590,200: 18x13 480 + #480 @ 254,691: 13x24 481 + #481 @ 89,154: 16x11 482 + #482 @ 327,14: 19x15 483 + #483 @ 575,486: 25x18 484 + #484 @ 382,592: 22x22 485 + #485 @ 433,216: 21x23 486 + #486 @ 978,610: 17x24 487 + #487 @ 65,312: 14x22 488 + #488 @ 447,5: 26x24 489 + #489 @ 298,690: 27x18 490 + #490 @ 146,877: 22x17 491 + #491 @ 280,458: 24x26 492 + #492 @ 813,237: 22x26 493 + #493 @ 220,135: 23x20 494 + #494 @ 78,314: 11x22 495 + #495 @ 918,506: 24x12 496 + #496 @ 801,762: 14x27 497 + #497 @ 440,597: 23x17 498 + #498 @ 472,498: 27x26 499 + #499 @ 407,460: 15x14 500 + #500 @ 55,131: 29x23 501 + #501 @ 617,388: 16x10 502 + #502 @ 164,333: 21x28 503 + #503 @ 742,878: 27x22 504 + #504 @ 148,127: 16x14 505 + #505 @ 211,112: 29x24 506 + #506 @ 432,685: 11x29 507 + #507 @ 557,191: 18x23 508 + #508 @ 131,824: 19x28 509 + #509 @ 545,634: 26x29 510 + #510 @ 264,663: 28x12 511 + #511 @ 42,323: 12x12 512 + #512 @ 461,162: 13x21 513 + #513 @ 153,845: 17x11 514 + #514 @ 801,448: 10x16 515 + #515 @ 503,581: 28x14 516 + #516 @ 487,667: 26x12 517 + #517 @ 955,841: 17x21 518 + #518 @ 692,938: 26x25 519 + #519 @ 804,839: 18x15 520 + #520 @ 582,22: 28x23 521 + #521 @ 834,83: 18x25 522 + #522 @ 72,781: 15x17 523 + #523 @ 765,978: 12x12 524 + #524 @ 267,565: 25x21 525 + #525 @ 252,596: 16x16 526 + #526 @ 9,867: 23x27 527 + #527 @ 310,50: 24x26 528 + #528 @ 34,841: 27x12 529 + #529 @ 232,56: 26x11 530 + #530 @ 979,45: 15x18 531 + #531 @ 738,247: 17x29 532 + #532 @ 607,341: 25x12 533 + #533 @ 418,20: 27x24 534 + #534 @ 926,56: 13x18 535 + #535 @ 856,123: 23x27 536 + #536 @ 612,299: 14x20 537 + #537 @ 311,490: 21x19 538 + #538 @ 408,826: 23x10 539 + #539 @ 629,88: 14x16 540 + #540 @ 908,733: 27x26 541 + #541 @ 143,207: 21x15 542 + #542 @ 303,545: 21x29 543 + #543 @ 975,64: 13x28 544 + #544 @ 932,373: 28x10 545 + #545 @ 876,417: 10x10 546 + #546 @ 193,767: 28x25 547 + #547 @ 957,143: 13x10 548 + #548 @ 263,432: 7x4 549 + #549 @ 949,685: 23x21 550 + #550 @ 382,203: 11x21 551 + #551 @ 33,640: 12x27 552 + #552 @ 312,733: 21x12 553 + #553 @ 81,942: 12x18 554 + #554 @ 122,809: 3x13 555 + #555 @ 252,427: 22x23 556 + #556 @ 868,181: 26x12 557 + #557 @ 679,972: 25x27 558 + #558 @ 765,907: 23x25 559 + #559 @ 494,666: 19x18 560 + #560 @ 170,701: 21x29 561 + #561 @ 807,626: 15x11 562 + #562 @ 211,859: 12x17 563 + #563 @ 309,498: 27x15 564 + #564 @ 960,66: 26x28 565 + #565 @ 840,267: 20x26 566 + #566 @ 129,847: 22x11 567 + #567 @ 158,796: 24x26 568 + #568 @ 954,335: 10x12 569 + #569 @ 59,755: 15x14 570 + #570 @ 963,977: 27x11 571 + #571 @ 787,10: 26x16 572 + #572 @ 191,497: 20x25 573 + #573 @ 232,903: 11x26 574 + #574 @ 869,789: 20x19 575 + #575 @ 221,378: 15x27 576 + #576 @ 155,81: 20x21 577 + #577 @ 509,77: 19x11 578 + #578 @ 33,676: 25x24 579 + #579 @ 715,715: 19x11 580 + #580 @ 579,758: 27x25 581 + #581 @ 120,902: 15x29 582 + #582 @ 208,412: 25x21 583 + #583 @ 267,775: 28x24 584 + #584 @ 380,105: 25x27 585 + #585 @ 356,848: 22x14 586 + #586 @ 272,553: 25x21 587 + #587 @ 423,951: 25x25 588 + #588 @ 207,82: 11x29 589 + #589 @ 41,833: 12x5 590 + #590 @ 709,543: 19x15 591 + #591 @ 79,547: 17x17 592 + #592 @ 436,670: 15x29 593 + #593 @ 171,244: 12x17 594 + #594 @ 278,97: 18x23 595 + #595 @ 490,175: 22x17 596 + #596 @ 357,285: 15x16 597 + #597 @ 764,725: 22x29 598 + #598 @ 720,131: 24x24 599 + #599 @ 8,331: 21x18 600 + #600 @ 289,738: 23x24 601 + #601 @ 153,947: 16x12 602 + #602 @ 914,637: 24x11 603 + #603 @ 611,330: 25x16 604 + #604 @ 553,798: 28x15 605 + #605 @ 953,776: 16x14 606 + #606 @ 928,937: 19x17 607 + #607 @ 451,808: 26x13 608 + #608 @ 352,592: 18x22 609 + #609 @ 775,946: 11x23 610 + #610 @ 391,475: 14x29 611 + #611 @ 87,760: 14x20 612 + #612 @ 599,971: 25x29 613 + #613 @ 723,343: 11x22 614 + #614 @ 580,166: 22x23 615 + #615 @ 366,291: 22x18 616 + #616 @ 704,887: 20x21 617 + #617 @ 761,883: 23x17 618 + #618 @ 352,730: 11x12 619 + #619 @ 911,858: 13x12 620 + #620 @ 919,466: 25x24 621 + #621 @ 321,813: 11x11 622 + #622 @ 53,422: 29x26 623 + #623 @ 711,514: 18x26 624 + #624 @ 455,284: 26x18 625 + #625 @ 677,871: 23x15 626 + #626 @ 731,648: 10x25 627 + #627 @ 53,759: 10x13 628 + #628 @ 930,68: 25x19 629 + #629 @ 719,918: 22x11 630 + #630 @ 108,247: 14x23 631 + #631 @ 535,675: 28x24 632 + #632 @ 335,112: 18x14 633 + #633 @ 254,450: 28x26 634 + #634 @ 852,870: 12x29 635 + #635 @ 308,752: 16x14 636 + #636 @ 299,692: 21x19 637 + #637 @ 288,487: 20x19 638 + #638 @ 661,5: 27x28 639 + #639 @ 672,709: 29x19 640 + #640 @ 837,584: 12x20 641 + #641 @ 891,935: 28x13 642 + #642 @ 808,69: 27x25 643 + #643 @ 166,384: 28x26 644 + #644 @ 259,688: 21x25 645 + #645 @ 54,658: 18x10 646 + #646 @ 62,333: 12x24 647 + #647 @ 731,92: 25x19 648 + #648 @ 129,94: 23x21 649 + #649 @ 217,592: 16x20 650 + #650 @ 41,909: 23x17 651 + #651 @ 865,107: 5x7 652 + #652 @ 79,565: 23x22 653 + #653 @ 155,187: 15x20 654 + #654 @ 873,705: 14x26 655 + #655 @ 376,461: 25x22 656 + #656 @ 329,6: 28x20 657 + #657 @ 723,969: 23x11 658 + #658 @ 115,859: 12x10 659 + #659 @ 674,888: 17x23 660 + #660 @ 703,750: 24x24 661 + #661 @ 242,76: 14x28 662 + #662 @ 763,842: 23x17 663 + #663 @ 310,26: 12x10 664 + #664 @ 765,70: 21x28 665 + #665 @ 640,316: 27x26 666 + #666 @ 143,817: 27x13 667 + #667 @ 107,443: 29x11 668 + #668 @ 923,904: 15x21 669 + #669 @ 969,114: 19x13 670 + #670 @ 940,72: 10x23 671 + #671 @ 476,848: 18x23 672 + #672 @ 348,5: 20x10 673 + #673 @ 906,404: 24x27 674 + #674 @ 673,694: 18x20 675 + #675 @ 112,12: 16x14 676 + #676 @ 77,322: 21x14 677 + #677 @ 899,104: 13x16 678 + #678 @ 202,131: 18x25 679 + #679 @ 324,263: 13x10 680 + #680 @ 18,921: 20x24 681 + #681 @ 690,604: 18x26 682 + #682 @ 628,191: 14x14 683 + #683 @ 467,632: 11x27 684 + #684 @ 32,906: 19x21 685 + #685 @ 602,112: 14x18 686 + #686 @ 305,692: 3x13 687 + #687 @ 12,452: 13x29 688 + #688 @ 834,462: 18x29 689 + #689 @ 81,782: 12x25 690 + #690 @ 824,521: 15x17 691 + #691 @ 919,408: 20x22 692 + #692 @ 410,712: 24x16 693 + #693 @ 442,621: 17x26 694 + #694 @ 337,565: 25x12 695 + #695 @ 943,607: 12x15 696 + #696 @ 716,127: 15x16 697 + #697 @ 733,660: 26x15 698 + #698 @ 109,855: 24x24 699 + #699 @ 236,825: 26x27 700 + #700 @ 892,373: 26x27 701 + #701 @ 911,789: 27x26 702 + #702 @ 704,654: 13x24 703 + #703 @ 146,355: 11x16 704 + #704 @ 888,105: 15x23 705 + #705 @ 143,909: 21x26 706 + #706 @ 961,766: 16x16 707 + #707 @ 124,856: 18x22 708 + #708 @ 170,144: 22x26 709 + #709 @ 181,264: 22x23 710 + #710 @ 364,22: 15x14 711 + #711 @ 702,961: 24x24 712 + #712 @ 161,98: 25x10 713 + #713 @ 466,546: 23x11 714 + #714 @ 463,266: 19x26 715 + #715 @ 414,10: 18x13 716 + #716 @ 101,396: 25x24 717 + #717 @ 69,204: 14x20 718 + #718 @ 437,589: 15x24 719 + #719 @ 403,899: 25x10 720 + #720 @ 429,650: 10x16 721 + #721 @ 789,907: 28x21 722 + #722 @ 562,783: 19x17 723 + #723 @ 11,471: 17x14 724 + #724 @ 688,308: 13x26 725 + #725 @ 878,300: 23x19 726 + #726 @ 455,623: 15x23 727 + #727 @ 943,363: 19x18 728 + #728 @ 724,715: 15x15 729 + #729 @ 891,706: 19x14 730 + #730 @ 154,389: 20x17 731 + #731 @ 872,140: 15x28 732 + #732 @ 940,681: 27x14 733 + #733 @ 741,361: 24x17 734 + #734 @ 961,282: 18x21 735 + #735 @ 62,533: 23x17 736 + #736 @ 95,130: 23x12 737 + #737 @ 230,581: 18x24 738 + #738 @ 344,765: 12x18 739 + #739 @ 78,204: 22x10 740 + #740 @ 862,294: 13x18 741 + #741 @ 131,949: 21x15 742 + #742 @ 194,177: 23x24 743 + #743 @ 106,68: 23x22 744 + #744 @ 745,982: 28x17 745 + #745 @ 366,202: 25x28 746 + #746 @ 844,75: 16x11 747 + #747 @ 765,281: 15x10 748 + #748 @ 280,569: 26x16 749 + #749 @ 84,458: 24x13 750 + #750 @ 930,609: 23x11 751 + #751 @ 642,189: 12x19 752 + #752 @ 403,474: 24x25 753 + #753 @ 489,246: 22x18 754 + #754 @ 617,570: 25x29 755 + #755 @ 491,557: 18x11 756 + #756 @ 252,75: 22x18 757 + #757 @ 938,833: 18x13 758 + #758 @ 170,336: 24x22 759 + #759 @ 857,185: 16x15 760 + #760 @ 583,835: 5x4 761 + #761 @ 611,181: 27x26 762 + #762 @ 811,580: 29x17 763 + #763 @ 4,348: 12x15 764 + #764 @ 810,853: 16x19 765 + #765 @ 681,912: 26x16 766 + #766 @ 381,251: 28x16 767 + #767 @ 760,734: 12x13 768 + #768 @ 771,82: 26x11 769 + #769 @ 284,718: 17x24 770 + #770 @ 866,347: 17x25 771 + #771 @ 78,134: 23x26 772 + #772 @ 222,419: 22x15 773 + #773 @ 250,440: 5x4 774 + #774 @ 438,598: 18x19 775 + #775 @ 51,243: 23x27 776 + #776 @ 392,176: 10x20 777 + #777 @ 61,543: 27x17 778 + #778 @ 58,66: 25x29 779 + #779 @ 58,808: 14x15 780 + #780 @ 483,485: 18x24 781 + #781 @ 474,955: 25x22 782 + #782 @ 378,379: 23x10 783 + #783 @ 882,615: 23x18 784 + #784 @ 735,418: 25x16 785 + #785 @ 335,191: 14x12 786 + #786 @ 638,377: 26x18 787 + #787 @ 611,369: 17x25 788 + #788 @ 82,769: 18x10 789 + #789 @ 929,955: 23x13 790 + #790 @ 564,476: 12x16 791 + #791 @ 372,742: 15x10 792 + #792 @ 476,845: 24x18 793 + #793 @ 900,560: 29x13 794 + #794 @ 612,196: 23x11 795 + #795 @ 808,248: 10x25 796 + #796 @ 567,125: 20x22 797 + #797 @ 252,601: 25x21 798 + #798 @ 382,217: 26x25 799 + #799 @ 317,488: 27x18 800 + #800 @ 98,390: 17x27 801 + #801 @ 954,75: 11x21 802 + #802 @ 99,43: 10x16 803 + #803 @ 761,81: 13x14 804 + #804 @ 6,902: 10x10 805 + #805 @ 854,345: 25x17 806 + #806 @ 0,778: 13x23 807 + #807 @ 445,564: 29x27 808 + #808 @ 275,923: 17x21 809 + #809 @ 346,744: 28x26 810 + #810 @ 428,953: 7x17 811 + #811 @ 300,689: 13x17 812 + #812 @ 510,728: 27x20 813 + #813 @ 246,584: 18x14 814 + #814 @ 331,538: 24x26 815 + #815 @ 468,664: 5x8 816 + #816 @ 25,900: 10x15 817 + #817 @ 156,742: 16x21 818 + #818 @ 893,211: 29x25 819 + #819 @ 80,190: 28x19 820 + #820 @ 718,371: 20x19 821 + #821 @ 231,676: 16x27 822 + #822 @ 217,901: 23x26 823 + #823 @ 52,580: 12x11 824 + #824 @ 856,307: 15x28 825 + #825 @ 515,649: 25x20 826 + #826 @ 58,815: 21x23 827 + #827 @ 884,633: 19x17 828 + #828 @ 4,765: 28x17 829 + #829 @ 499,735: 12x19 830 + #830 @ 965,971: 13x10 831 + #831 @ 855,500: 27x11 832 + #832 @ 535,375: 24x22 833 + #833 @ 35,615: 28x19 834 + #834 @ 513,22: 14x18 835 + #835 @ 652,315: 15x16 836 + #836 @ 907,375: 14x19 837 + #837 @ 284,731: 14x14 838 + #838 @ 499,62: 22x28 839 + #839 @ 228,319: 28x13 840 + #840 @ 596,727: 14x10 841 + #841 @ 629,307: 23x23 842 + #842 @ 102,294: 28x29 843 + #843 @ 458,750: 23x17 844 + #844 @ 893,106: 15x19 845 + #845 @ 306,817: 27x26 846 + #846 @ 295,693: 16x23 847 + #847 @ 448,829: 21x10 848 + #848 @ 884,418: 26x29 849 + #849 @ 239,308: 15x23 850 + #850 @ 78,403: 26x14 851 + #851 @ 693,349: 26x29 852 + #852 @ 151,825: 13x19 853 + #853 @ 227,909: 17x18 854 + #854 @ 270,671: 21x23 855 + #855 @ 568,853: 25x14 856 + #856 @ 38,572: 26x20 857 + #857 @ 391,849: 17x29 858 + #858 @ 570,569: 17x24 859 + #859 @ 225,893: 11x12 860 + #860 @ 376,520: 20x24 861 + #861 @ 909,724: 19x13 862 + #862 @ 879,802: 29x27 863 + #863 @ 365,41: 15x26 864 + #864 @ 554,8: 16x17 865 + #865 @ 118,510: 3x12 866 + #866 @ 42,659: 25x12 867 + #867 @ 46,421: 16x25 868 + #868 @ 232,850: 18x26 869 + #869 @ 986,21: 10x27 870 + #870 @ 138,445: 26x15 871 + #871 @ 47,968: 20x13 872 + #872 @ 665,686: 15x20 873 + #873 @ 864,756: 16x18 874 + #874 @ 552,355: 25x21 875 + #875 @ 453,482: 13x11 876 + #876 @ 839,7: 18x16 877 + #877 @ 831,141: 11x10 878 + #878 @ 732,806: 11x20 879 + #879 @ 59,513: 16x25 880 + #880 @ 815,149: 25x12 881 + #881 @ 605,288: 25x23 882 + #882 @ 144,188: 26x14 883 + #883 @ 104,945: 16x23 884 + #884 @ 42,153: 13x16 885 + #885 @ 785,98: 4x10 886 + #886 @ 655,824: 17x28 887 + #887 @ 71,516: 11x14 888 + #888 @ 169,792: 19x20 889 + #889 @ 673,867: 27x21 890 + #890 @ 754,435: 16x26 891 + #891 @ 301,348: 18x12 892 + #892 @ 849,1: 19x20 893 + #893 @ 943,952: 23x15 894 + #894 @ 299,556: 27x18 895 + #895 @ 815,763: 28x10 896 + #896 @ 250,437: 13x13 897 + #897 @ 437,414: 10x11 898 + #898 @ 455,562: 13x11 899 + #899 @ 860,11: 17x29 900 + #900 @ 146,215: 14x18 901 + #901 @ 881,683: 11x23 902 + #902 @ 573,571: 11x18 903 + #903 @ 394,760: 16x21 904 + #904 @ 415,563: 14x12 905 + #905 @ 859,54: 10x24 906 + #906 @ 78,373: 23x27 907 + #907 @ 218,876: 19x19 908 + #908 @ 877,151: 15x29 909 + #909 @ 41,493: 20x29 910 + #910 @ 303,25: 12x11 911 + #911 @ 901,490: 20x23 912 + #912 @ 113,482: 11x26 913 + #913 @ 303,729: 11x24 914 + #914 @ 44,352: 24x21 915 + #915 @ 767,267: 11x23 916 + #916 @ 829,22: 17x25 917 + #917 @ 463,277: 27x27 918 + #918 @ 752,901: 17x28 919 + #919 @ 23,388: 17x13 920 + #920 @ 909,572: 13x22 921 + #921 @ 976,515: 19x27 922 + #922 @ 649,332: 23x22 923 + #923 @ 884,401: 21x13 924 + #924 @ 946,444: 24x10 925 + #925 @ 238,938: 25x28 926 + #926 @ 784,744: 15x12 927 + #927 @ 299,680: 15x22 928 + #928 @ 621,189: 29x23 929 + #929 @ 243,257: 18x23 930 + #930 @ 631,271: 17x25 931 + #931 @ 829,986: 10x4 932 + #932 @ 690,445: 25x23 933 + #933 @ 856,98: 27x11 934 + #934 @ 919,150: 17x14 935 + #935 @ 870,887: 27x24 936 + #936 @ 747,164: 26x21 937 + #937 @ 402,714: 15x19 938 + #938 @ 48,321: 23x29 939 + #939 @ 544,619: 18x25 940 + #940 @ 272,698: 21x18 941 + #941 @ 116,647: 11x25 942 + #942 @ 313,965: 10x17 943 + #943 @ 680,893: 29x13 944 + #944 @ 947,664: 11x25 945 + #945 @ 169,859: 11x13 946 + #946 @ 896,774: 11x14 947 + #947 @ 115,142: 16x22 948 + #948 @ 690,643: 15x27 949 + #949 @ 8,768: 24x23 950 + #950 @ 337,490: 15x11 951 + #951 @ 375,403: 22x16 952 + #952 @ 701,965: 15x20 953 + #953 @ 339,541: 11x16 954 + #954 @ 502,957: 26x12 955 + #955 @ 369,248: 24x22 956 + #956 @ 934,4: 28x17 957 + #957 @ 242,900: 13x21 958 + #958 @ 456,4: 20x26 959 + #959 @ 555,623: 3x6 960 + #960 @ 424,482: 24x25 961 + #961 @ 564,637: 5x9 962 + #962 @ 518,545: 25x29 963 + #963 @ 354,761: 15x16 964 + #964 @ 709,777: 20x24 965 + #965 @ 786,817: 28x14 966 + #966 @ 105,129: 21x13 967 + #967 @ 39,678: 4x17 968 + #968 @ 594,621: 25x10 969 + #969 @ 123,959: 22x16 970 + #970 @ 479,298: 28x14 971 + #971 @ 928,84: 12x17 972 + #972 @ 924,955: 18x27 973 + #973 @ 306,851: 13x16 974 + #974 @ 288,830: 27x12 975 + #975 @ 83,893: 29x18 976 + #976 @ 877,112: 10x26 977 + #977 @ 108,870: 19x17 978 + #978 @ 370,97: 5x3 979 + #979 @ 748,865: 23x20 980 + #980 @ 271,92: 23x19 981 + #981 @ 603,192: 25x28 982 + #982 @ 860,522: 29x21 983 + #983 @ 920,412: 19x27 984 + #984 @ 473,806: 13x13 985 + #985 @ 850,462: 14x10 986 + #986 @ 593,184: 25x18 987 + #987 @ 894,410: 16x16 988 + #988 @ 607,91: 11x14 989 + #989 @ 77,331: 25x18 990 + #990 @ 770,675: 17x11 991 + #991 @ 399,109: 26x11 992 + #992 @ 754,706: 13x22 993 + #993 @ 863,103: 18x21 994 + #994 @ 420,608: 22x25 995 + #995 @ 380,97: 23x16 996 + #996 @ 463,178: 19x12 997 + #997 @ 308,681: 11x29 998 + #998 @ 615,479: 27x22 999 + #999 @ 101,880: 22x26 1000 + #1000 @ 351,24: 16x13 1001 + #1001 @ 362,609: 12x23 1002 + #1002 @ 421,8: 16x11 1003 + #1003 @ 318,611: 18x16 1004 + #1004 @ 805,32: 26x12 1005 + #1005 @ 702,591: 27x22 1006 + #1006 @ 183,901: 20x18 1007 + #1007 @ 298,552: 25x21 1008 + #1008 @ 457,289: 10x25 1009 + #1009 @ 974,344: 15x22 1010 + #1010 @ 581,743: 25x24 1011 + #1011 @ 704,796: 13x10 1012 + #1012 @ 107,454: 17x19 1013 + #1013 @ 60,837: 14x27 1014 + #1014 @ 95,558: 18x17 1015 + #1015 @ 649,569: 24x25 1016 + #1016 @ 962,733: 27x27 1017 + #1017 @ 500,4: 24x25 1018 + #1018 @ 757,972: 24x20 1019 + #1019 @ 250,331: 16x29 1020 + #1020 @ 392,166: 12x13 1021 + #1021 @ 865,502: 20x21 1022 + #1022 @ 159,221: 17x24 1023 + #1023 @ 266,819: 24x21 1024 + #1024 @ 265,599: 11x24 1025 + #1025 @ 193,557: 27x18 1026 + #1026 @ 15,911: 10x16 1027 + #1027 @ 873,201: 10x12 1028 + #1028 @ 295,830: 15x24 1029 + #1029 @ 674,74: 28x16 1030 + #1030 @ 940,940: 16x29 1031 + #1031 @ 17,893: 14x10 1032 + #1032 @ 575,528: 14x13 1033 + #1033 @ 921,618: 16x22 1034 + #1034 @ 855,713: 23x22 1035 + #1035 @ 935,399: 25x21 1036 + #1036 @ 173,643: 17x15 1037 + #1037 @ 868,425: 19x18 1038 + #1038 @ 168,570: 29x14 1039 + #1039 @ 505,731: 19x29 1040 + #1040 @ 824,139: 28x23 1041 + #1041 @ 818,503: 27x28 1042 + #1042 @ 523,825: 11x26 1043 + #1043 @ 581,833: 10x14 1044 + #1044 @ 766,420: 14x21 1045 + #1045 @ 676,124: 22x28 1046 + #1046 @ 513,258: 17x19 1047 + #1047 @ 188,866: 13x28 1048 + #1048 @ 232,50: 24x12 1049 + #1049 @ 725,533: 18x18 1050 + #1050 @ 753,858: 26x28 1051 + #1051 @ 769,342: 8x12 1052 + #1052 @ 965,296: 15x17 1053 + #1053 @ 920,757: 27x16 1054 + #1054 @ 775,755: 21x13 1055 + #1055 @ 217,953: 21x16 1056 + #1056 @ 121,492: 29x24 1057 + #1057 @ 347,7: 12x18 1058 + #1058 @ 75,763: 23x10 1059 + #1059 @ 336,576: 24x26 1060 + #1060 @ 864,252: 29x13 1061 + #1061 @ 98,633: 28x19 1062 + #1062 @ 539,229: 19x10 1063 + #1063 @ 233,570: 24x29 1064 + #1064 @ 482,251: 16x27 1065 + #1065 @ 812,762: 13x17 1066 + #1066 @ 237,958: 22x20 1067 + #1067 @ 260,694: 12x29 1068 + #1068 @ 492,219: 26x27 1069 + #1069 @ 694,614: 22x18 1070 + #1070 @ 112,276: 24x10 1071 + #1071 @ 158,346: 19x15 1072 + #1072 @ 10,779: 10x14 1073 + #1073 @ 503,16: 13x14 1074 + #1074 @ 690,164: 26x23 1075 + #1075 @ 52,323: 16x24 1076 + #1076 @ 448,595: 10x15 1077 + #1077 @ 744,772: 11x20 1078 + #1078 @ 907,49: 27x14 1079 + #1079 @ 382,474: 17x16 1080 + #1080 @ 642,576: 14x16 1081 + #1081 @ 455,616: 20x20 1082 + #1082 @ 935,657: 18x12 1083 + #1083 @ 941,77: 13x14 1084 + #1084 @ 761,85: 11x16 1085 + #1085 @ 335,643: 25x21 1086 + #1086 @ 154,900: 20x13 1087 + #1087 @ 516,52: 14x16 1088 + #1088 @ 654,318: 27x29 1089 + #1089 @ 102,440: 11x10 1090 + #1090 @ 464,660: 18x20 1091 + #1091 @ 894,884: 13x18 1092 + #1092 @ 986,42: 14x13 1093 + #1093 @ 968,689: 22x17 1094 + #1094 @ 438,492: 20x27 1095 + #1095 @ 506,335: 15x29 1096 + #1096 @ 447,594: 23x28 1097 + #1097 @ 798,504: 17x13 1098 + #1098 @ 40,631: 16x28 1099 + #1099 @ 834,860: 19x21 1100 + #1100 @ 533,597: 28x18 1101 + #1101 @ 744,885: 19x18 1102 + #1102 @ 465,675: 11x25 1103 + #1103 @ 45,571: 18x26 1104 + #1104 @ 133,444: 19x12 1105 + #1105 @ 874,1: 19x25 1106 + #1106 @ 350,463: 25x17 1107 + #1107 @ 92,553: 22x19 1108 + #1108 @ 403,948: 24x14 1109 + #1109 @ 340,104: 20x18 1110 + #1110 @ 399,752: 23x12 1111 + #1111 @ 188,197: 13x19 1112 + #1112 @ 26,481: 15x17 1113 + #1113 @ 903,589: 28x24 1114 + #1114 @ 506,292: 7x6 1115 + #1115 @ 328,258: 27x25 1116 + #1116 @ 978,544: 10x29 1117 + #1117 @ 503,64: 12x25 1118 + #1118 @ 99,931: 11x18 1119 + #1119 @ 200,191: 16x12 1120 + #1120 @ 50,708: 25x24 1121 + #1121 @ 274,799: 17x27 1122 + #1122 @ 636,788: 17x18 1123 + #1123 @ 451,746: 13x17 1124 + #1124 @ 261,428: 15x26 1125 + #1125 @ 329,792: 25x19 1126 + #1126 @ 572,807: 19x17 1127 + #1127 @ 198,609: 27x10 1128 + #1128 @ 104,49: 14x15 1129 + #1129 @ 30,880: 16x19 1130 + #1130 @ 348,160: 14x12 1131 + #1131 @ 895,627: 23x14 1132 + #1132 @ 104,320: 22x14 1133 + #1133 @ 293,535: 13x26 1134 + #1134 @ 230,385: 11x28 1135 + #1135 @ 782,636: 27x15 1136 + #1136 @ 893,926: 16x13 1137 + #1137 @ 822,134: 26x12 1138 + #1138 @ 801,822: 17x13 1139 + #1139 @ 945,0: 17x18 1140 + #1140 @ 778,96: 15x18 1141 + #1141 @ 499,626: 5x6 1142 + #1142 @ 62,526: 29x10 1143 + #1143 @ 528,962: 12x13 1144 + #1144 @ 296,573: 14x25 1145 + #1145 @ 673,398: 14x11 1146 + #1146 @ 223,878: 10x15 1147 + #1147 @ 149,949: 24x29 1148 + #1148 @ 664,391: 25x11 1149 + #1149 @ 234,343: 21x15 1150 + #1150 @ 443,667: 24x26 1151 + #1151 @ 640,986: 25x13 1152 + #1152 @ 664,667: 27x28 1153 + #1153 @ 975,260: 24x27 1154 + #1154 @ 383,868: 18x13 1155 + #1155 @ 374,851: 26x18 1156 + #1156 @ 375,399: 25x22 1157 + #1157 @ 229,904: 12x14 1158 + #1158 @ 581,197: 21x15 1159 + #1159 @ 388,118: 13x20 1160 + #1160 @ 801,193: 29x28 1161 + #1161 @ 949,691: 19x25 1162 + #1162 @ 635,468: 11x27 1163 + #1163 @ 705,38: 11x15 1164 + #1164 @ 777,627: 21x12 1165 + #1165 @ 159,748: 13x14 1166 + #1166 @ 714,809: 26x17 1167 + #1167 @ 169,157: 14x29 1168 + #1168 @ 89,271: 24x10 1169 + #1169 @ 301,700: 29x18 1170 + #1170 @ 509,896: 13x22 1171 + #1171 @ 91,77: 10x16 1172 + #1172 @ 418,401: 16x13 1173 + #1173 @ 93,822: 27x18 1174 + #1174 @ 917,825: 24x14 1175 + #1175 @ 888,871: 21x19 1176 + #1176 @ 583,14: 18x13 1177 + #1177 @ 937,190: 21x20 1178 + #1178 @ 210,855: 12x23 1179 + #1179 @ 905,117: 21x25 1180 + #1180 @ 883,647: 19x24 1181 + #1181 @ 549,663: 10x18 1182 + #1182 @ 737,824: 13x22 1183 + #1183 @ 787,20: 11x14 1184 + #1184 @ 936,834: 28x17 1185 + #1185 @ 50,554: 12x10 1186 + #1186 @ 894,867: 21x23 1187 + #1187 @ 600,105: 20x10 1188 + #1188 @ 412,397: 28x18 1189 + #1189 @ 236,700: 25x12 1190 + #1190 @ 353,798: 20x20 1191 + #1191 @ 744,865: 15x17 1192 + #1192 @ 684,158: 18x11 1193 + #1193 @ 561,196: 7x14 1194 + #1194 @ 149,831: 19x14 1195 + #1195 @ 600,628: 22x11 1196 + #1196 @ 322,680: 20x24 1197 + #1197 @ 185,109: 17x23 1198 + #1198 @ 36,831: 21x19 1199 + #1199 @ 416,603: 25x28 1200 + #1200 @ 180,882: 20x25 1201 + #1201 @ 27,393: 11x20 1202 + #1202 @ 49,564: 13x24 1203 + #1203 @ 543,323: 25x23 1204 + #1204 @ 893,16: 29x11 1205 + #1205 @ 824,724: 26x25 1206 + #1206 @ 739,324: 21x17 1207 + #1207 @ 84,839: 11x15 1208 + #1208 @ 734,816: 18x22 1209 + #1209 @ 525,950: 28x12 1210 + #1210 @ 547,836: 22x25 1211 + #1211 @ 877,190: 27x24 1212 + #1212 @ 88,1: 13x28 1213 + #1213 @ 556,236: 28x10 1214 + #1214 @ 358,566: 17x11 1215 + #1215 @ 447,577: 13x29 1216 + #1216 @ 340,139: 27x26 1217 + #1217 @ 82,934: 24x25 1218 + #1218 @ 475,661: 15x28 1219 + #1219 @ 94,340: 10x19 1220 + #1220 @ 934,608: 11x20 1221 + #1221 @ 72,155: 24x27 1222 + #1222 @ 738,846: 13x28 1223 + #1223 @ 107,436: 22x26 1224 + #1224 @ 416,563: 24x20 1225 + #1225 @ 353,0: 11x18 1226 + #1226 @ 205,911: 25x11 1227 + #1227 @ 50,763: 26x25 1228 + #1228 @ 352,955: 19x28 1229 + #1229 @ 488,649: 27x21 1230 + #1230 @ 28,723: 27x15 1231 + #1231 @ 920,956: 18x23 1232 + #1232 @ 23,641: 17x13 1233 + #1233 @ 437,811: 19x10
+2 -1
src/AoC.hs
··· 1 1 module AoC (module X) where 2 2 3 3 import AoC.Y2018.Day1 as X 4 - import AoC.Y2018.Day2 as X 4 + import AoC.Y2018.Day2 as X 5 + import AoC.Y2018.Day3 as X
+98
src/AoC/Y2018/Day3.hs
··· 1 + {-# LANGUAGE TemplateHaskell #-} 2 + 3 + module AoC.Y2018.Day3 where 4 + 5 + import Papa 6 + import qualified Data.Text as T (unpack) 7 + import qualified Data.Text.IO as T (readFile) 8 + import qualified Data.Map.Strict as C 9 + import qualified Control.Monad.Combinators as P 10 + import qualified Text.Megaparsec as P 11 + import qualified Text.Megaparsec.Char as P 12 + import qualified Text.Megaparsec.Char.Lexer as L 13 + 14 + newtype CellID = CellID (Integer,Integer) deriving (Eq, Ord, Show) 15 + 16 + type ClaimID = Integer 17 + 18 + data ClaimEntry = ClaimEntry { 19 + _claimID :: ClaimID 20 + , _left :: Integer 21 + , _top :: Integer 22 + , _width :: Integer 23 + , _height :: Integer 24 + } deriving Show 25 + makeLenses ''ClaimEntry 26 + 27 + -- | Parser stuff 28 + 29 + type Parser = P.Parsec Void String 30 + 31 + sc :: Parser () 32 + sc = L.space P.space1 P.empty P.empty 33 + 34 + lexeme :: Parser a -> Parser a 35 + lexeme = L.lexeme sc 36 + 37 + symbol :: String -> Parser String 38 + symbol = L.symbol sc 39 + 40 + integer :: Parser Integer 41 + integer = lexeme L.decimal 42 + 43 + headPartial :: [Integer] -> Integer 44 + headPartial [x] = x 45 + headPartial _ = 0 46 + 47 + claimParser :: Parser [ClaimEntry] 48 + claimParser = some $ do 49 + _ <- P.char '#' 50 + i <- integer 51 + _ <- symbol "@" 52 + l <- headPartial <$> P.someTill L.decimal (P.char ',') 53 + t <- headPartial <$> P.someTill L.decimal (symbol ":") 54 + w <- headPartial <$> P.someTill L.decimal (P.char 'x') 55 + h <- headPartial <$> P.endBy1 L.decimal P.eol 56 + return $ ClaimEntry i l t w h 57 + 58 + parseClaimsInput' :: Parser [ClaimEntry] -> String -> [ClaimEntry] 59 + parseClaimsInput' p s = let ps = P.parse p "" s 60 + in 61 + case ps of 62 + Left _ -> [] 63 + Right xs -> xs 64 + 65 + parseClaimsInput :: FilePath -> IO [ClaimEntry] 66 + parseClaimsInput f = parseClaimsInput' claimParser . T.unpack <$> T.readFile f 67 + 68 + -- | Parser stuff complete 69 + 70 + claimLoc :: ClaimEntry -> [(CellID, ClaimID)] 71 + claimLoc c = let cs :: [(Integer, Integer)] 72 + cs = [(c^.top + j, c^.left + i) | j <- [1..c^.height] , i <- [1..c^.width]] 73 + in 74 + (\ccs -> (CellID ccs, c^.claimID)) <$> cs 75 + 76 + mkMap :: [[(CellID, ClaimID)]] -> C.Map CellID [ClaimID] 77 + mkMap = C.fromListWith (++) . (<$>) (\(c,ii) -> (c,[ii])) . concat 78 + 79 + pristineClaim :: C.Map CellID [ClaimID] -> [ClaimID] 80 + pristineClaim m = let s = nub $ concat $ C.elems $ C.filter ((==1) . length) m 81 + ns = nub $ concat $ C.elems $ C.filter ((\l -> l > 1 && l <=2) . length) m 82 + is = nub $ intersect s ns 83 + in 84 + s \\ is 85 + 86 + day3Puzzle1 :: FilePath -> IO Int 87 + day3Puzzle1 f = do 88 + p <- parseClaimsInput f 89 + return $ C.size $ C.filter ((>1) . length) $ mkMap $ claimLoc <$> p 90 + 91 + day3Puzzle2 :: FilePath -> IO (Maybe ClaimID) 92 + day3Puzzle2 f = do 93 + p <- parseClaimsInput f 94 + let xs = pristineClaim $ mkMap $ claimLoc <$> p 95 + return $ 96 + case xs of 97 + [x] -> Just x 98 + _ -> Nothing