adventofcode

git clone https://git.ce9e.org/adventofcode.git

commit
2f2633d5646d51dd6806032cf152e70c7957278c
parent
30a31e74f232471c33812cbc4bd989fff377aadd
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2023-12-19 09:11
2023-12-18

Diffstat

A 2023/18/input.txt 630 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A 2023/18/solution.rs 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A 2023/18/test.txt 14 ++++++++++++++

3 files changed, 716 insertions, 0 deletions


diff --git a/2023/18/input.txt b/2023/18/input.txt

@@ -0,0 +1,630 @@
   -1     1 L 7 (#080f92)
   -1     2 U 8 (#6345a3)
   -1     3 L 9 (#8646f2)
   -1     4 U 6 (#34e153)
   -1     5 L 4 (#0f1112)
   -1     6 D 15 (#441d83)
   -1     7 L 5 (#259752)
   -1     8 U 9 (#1a63b3)
   -1     9 L 2 (#7d6642)
   -1    10 U 6 (#471dc3)
   -1    11 L 15 (#0b2432)
   -1    12 U 4 (#179b23)
   -1    13 L 3 (#4f3500)
   -1    14 U 5 (#7166d3)
   -1    15 L 11 (#36b9b0)
   -1    16 U 8 (#2a4fb3)
   -1    17 R 11 (#2a9d40)
   -1    18 U 4 (#7776d3)
   -1    19 L 4 (#1f5af0)
   -1    20 U 3 (#610911)
   -1    21 R 6 (#513130)
   -1    22 U 5 (#38d451)
   -1    23 R 6 (#25d420)
   -1    24 U 6 (#07e921)
   -1    25 L 12 (#049d20)
   -1    26 U 3 (#579443)
   -1    27 L 5 (#2cfd52)
   -1    28 U 8 (#67b1d3)
   -1    29 L 5 (#0fc502)
   -1    30 U 5 (#1aac63)
   -1    31 L 7 (#7dd532)
   -1    32 D 9 (#0183c1)
   -1    33 L 7 (#3647a2)
   -1    34 D 4 (#35f4f1)
   -1    35 L 8 (#714d12)
   -1    36 U 6 (#27e461)
   -1    37 L 2 (#227ba2)
   -1    38 U 3 (#688731)
   -1    39 L 12 (#3d6ba2)
   -1    40 U 2 (#594ea3)
   -1    41 L 8 (#326992)
   -1    42 U 13 (#399cc3)
   -1    43 R 8 (#48d190)
   -1    44 U 3 (#6515e3)
   -1    45 R 5 (#48d192)
   -1    46 U 3 (#37a513)
   -1    47 R 6 (#1ecf82)
   -1    48 U 10 (#342493)
   -1    49 R 5 (#6df562)
   -1    50 U 13 (#39bae3)
   -1    51 L 7 (#116512)
   -1    52 U 13 (#49af63)
   -1    53 R 7 (#1b61d2)
   -1    54 U 6 (#437ed3)
   -1    55 R 14 (#703f32)
   -1    56 U 8 (#250693)
   -1    57 R 4 (#30dce2)
   -1    58 D 11 (#2e4181)
   -1    59 L 6 (#446470)
   -1    60 D 3 (#822d51)
   -1    61 L 8 (#331170)
   -1    62 D 8 (#082d21)
   -1    63 R 14 (#1af7d2)
   -1    64 D 7 (#584861)
   -1    65 R 11 (#1af7d0)
   -1    66 D 11 (#5656c1)
   -1    67 R 8 (#6c6962)
   -1    68 U 6 (#81b131)
   -1    69 R 5 (#0b0c82)
   -1    70 U 13 (#0871a1)
   -1    71 L 5 (#6171a2)
   -1    72 U 4 (#0e40f1)
   -1    73 L 12 (#3e21f2)
   -1    74 U 3 (#501bb1)
   -1    75 R 11 (#12af92)
   -1    76 U 7 (#04a483)
   -1    77 R 13 (#4d2822)
   -1    78 U 9 (#5ebfa3)
   -1    79 L 13 (#4d2820)
   -1    80 U 5 (#62fc63)
   -1    81 L 11 (#2328f2)
   -1    82 U 4 (#0183c3)
   -1    83 L 7 (#077c92)
   -1    84 D 6 (#815a33)
   -1    85 L 4 (#440a12)
   -1    86 U 6 (#0fd693)
   -1    87 L 10 (#2813a2)
   -1    88 U 6 (#13bea3)
   -1    89 L 4 (#688d32)
   -1    90 D 6 (#54f993)
   -1    91 L 6 (#688d30)
   -1    92 D 12 (#3d6313)
   -1    93 L 9 (#2813a0)
   -1    94 U 4 (#1694b3)
   -1    95 L 10 (#440a10)
   -1    96 U 4 (#5e3943)
   -1    97 L 5 (#2a8f52)
   -1    98 U 7 (#34c963)
   -1    99 R 15 (#2a8f50)
   -1   100 U 3 (#3705a3)
   -1   101 L 9 (#00b952)
   -1   102 U 9 (#6e5ef3)
   -1   103 R 5 (#63c4d2)
   -1   104 U 4 (#405243)
   -1   105 R 5 (#80f640)
   -1   106 U 4 (#4dd323)
   -1   107 R 11 (#05e080)
   -1   108 D 8 (#1ea993)
   -1   109 R 3 (#86d6c2)
   -1   110 D 5 (#0f1583)
   -1   111 R 12 (#4f5302)
   -1   112 U 5 (#06d053)
   -1   113 R 12 (#69d392)
   -1   114 U 4 (#645c53)
   -1   115 R 8 (#59a5e2)
   -1   116 U 6 (#317593)
   -1   117 R 5 (#600892)
   -1   118 U 7 (#2e9d33)
   -1   119 R 8 (#452812)
   -1   120 U 6 (#415bc3)
   -1   121 R 9 (#03d492)
   -1   122 D 4 (#50e883)
   -1   123 R 2 (#1f1412)
   -1   124 D 6 (#1674b3)
   -1   125 R 11 (#482570)
   -1   126 U 10 (#64c201)
   -1   127 R 12 (#15ece0)
   -1   128 U 10 (#3e4b71)
   -1   129 R 11 (#20a590)
   -1   130 D 5 (#42fcb3)
   -1   131 R 9 (#5ef040)
   -1   132 D 4 (#6010c3)
   -1   133 R 8 (#38b750)
   -1   134 D 6 (#205343)
   -1   135 L 7 (#82eac0)
   -1   136 D 2 (#371d03)
   -1   137 L 10 (#7cf2c2)
   -1   138 D 6 (#4c6dc3)
   -1   139 R 8 (#7cf2c0)
   -1   140 D 11 (#56ce93)
   -1   141 R 8 (#046250)
   -1   142 D 4 (#12ef83)
   -1   143 R 6 (#501950)
   -1   144 U 4 (#214f01)
   -1   145 R 5 (#54d0d0)
   -1   146 U 5 (#1a5851)
   -1   147 L 6 (#969010)
   -1   148 U 5 (#41da71)
   -1   149 R 6 (#14c1f0)
   -1   150 U 7 (#3aed41)
   -1   151 L 5 (#376ac2)
   -1   152 U 4 (#34b961)
   -1   153 R 3 (#529e22)
   -1   154 U 15 (#34b963)
   -1   155 R 7 (#214922)
   -1   156 D 10 (#34d9d1)
   -1   157 R 10 (#673ec0)
   -1   158 D 7 (#6430f1)
   -1   159 R 7 (#6c3120)
   -1   160 D 5 (#0f0d01)
   -1   161 R 4 (#17a740)
   -1   162 D 8 (#5aefa1)
   -1   163 R 7 (#178970)
   -1   164 D 10 (#3990f1)
   -1   165 R 12 (#2fbc90)
   -1   166 D 7 (#2e35f1)
   -1   167 R 8 (#8b7710)
   -1   168 D 4 (#492861)
   -1   169 R 4 (#8b7712)
   -1   170 D 8 (#2d6701)
   -1   171 R 10 (#5875b0)
   -1   172 U 12 (#1d44a1)
   -1   173 R 5 (#47de12)
   -1   174 D 3 (#5397b1)
   -1   175 R 15 (#47de10)
   -1   176 D 5 (#532ac1)
   -1   177 R 6 (#5875b2)
   -1   178 U 8 (#512811)
   -1   179 R 3 (#364932)
   -1   180 D 8 (#407bc1)
   -1   181 R 8 (#364930)
   -1   182 D 4 (#30a4e1)
   -1   183 L 5 (#739de0)
   -1   184 D 5 (#76d5b3)
   -1   185 L 10 (#315880)
   -1   186 D 11 (#480321)
   -1   187 R 10 (#42c7a0)
   -1   188 D 3 (#4e5751)
   -1   189 R 5 (#42c7a2)
   -1   190 D 10 (#3749e1)
   -1   191 R 12 (#89fcf0)
   -1   192 D 6 (#02f443)
   -1   193 R 9 (#0ee550)
   -1   194 D 4 (#320553)
   -1   195 R 5 (#89da30)
   -1   196 D 9 (#369de3)
   -1   197 L 10 (#03c382)
   -1   198 D 11 (#49d2b3)
   -1   199 L 4 (#94fc02)
   -1   200 D 3 (#183a33)
   -1   201 R 7 (#33a150)
   -1   202 D 6 (#669da3)
   -1   203 R 7 (#546cc2)
   -1   204 D 3 (#0ad4c1)
   -1   205 R 13 (#973832)
   -1   206 U 6 (#0ad4c3)
   -1   207 R 11 (#0351d2)
   -1   208 U 8 (#35d693)
   -1   209 R 6 (#06e6e0)
   -1   210 U 5 (#098233)
   -1   211 R 6 (#5277e0)
   -1   212 U 6 (#959b53)
   -1   213 R 10 (#3917c0)
   -1   214 U 4 (#89bb93)
   -1   215 R 9 (#469ac0)
   -1   216 U 10 (#1bee63)
   -1   217 L 6 (#0bd950)
   -1   218 D 4 (#2e0b41)
   -1   219 L 14 (#1e8690)
   -1   220 U 4 (#4f1003)
   -1   221 L 5 (#4de430)
   -1   222 U 4 (#4f1001)
   -1   223 L 8 (#3cbf60)
   -1   224 U 11 (#2e0b43)
   -1   225 L 9 (#038de0)
   -1   226 U 8 (#156883)
   -1   227 R 4 (#149080)
   -1   228 U 3 (#64d193)
   -1   229 R 10 (#12e500)
   -1   230 U 5 (#608833)
   -1   231 L 8 (#46ec10)
   -1   232 U 3 (#56ecc3)
   -1   233 L 2 (#1f7430)
   -1   234 U 11 (#49b923)
   -1   235 L 7 (#1f7432)
   -1   236 U 6 (#1de083)
   -1   237 L 3 (#66b490)
   -1   238 U 4 (#16e561)
   -1   239 L 14 (#40c420)
   -1   240 U 3 (#5ec471)
   -1   241 R 7 (#40c422)
   -1   242 U 11 (#48dc91)
   -1   243 R 3 (#1c26f0)
   -1   244 U 6 (#2e4273)
   -1   245 R 2 (#3f5c80)
   -1   246 U 5 (#634373)
   -1   247 R 10 (#4b6580)
   -1   248 U 2 (#46bd43)
   -1   249 R 12 (#7d0f50)
   -1   250 U 7 (#3a3233)
   -1   251 R 5 (#1034d0)
   -1   252 D 13 (#3208f3)
   -1   253 L 8 (#081450)
   -1   254 D 4 (#6079d1)
   -1   255 L 12 (#3eb490)
   -1   256 U 4 (#2cbf81)
   -1   257 L 4 (#754540)
   -1   258 D 8 (#4d48e1)
   -1   259 R 8 (#346ce0)
   -1   260 D 9 (#56bf41)
   -1   261 R 11 (#68b710)
   -1   262 U 9 (#320161)
   -1   263 R 5 (#489950)
   -1   264 D 7 (#620d21)
   -1   265 R 7 (#546180)
   -1   266 D 6 (#301f93)
   -1   267 R 4 (#663820)
   -1   268 D 10 (#2fa3d3)
   -1   269 R 7 (#2131a0)
   -1   270 D 2 (#59e5d3)
   -1   271 R 9 (#4a92e0)
   -1   272 D 8 (#464c61)
   -1   273 R 11 (#4a90b2)
   -1   274 D 3 (#39d451)
   -1   275 L 9 (#4a90b0)
   -1   276 D 2 (#27c3b1)
   -1   277 L 6 (#24b1f0)
   -1   278 D 7 (#11c4d1)
   -1   279 L 5 (#3563c0)
   -1   280 D 7 (#620d23)
   -1   281 R 8 (#2118e0)
   -1   282 D 2 (#6392e1)
   -1   283 R 12 (#43f1d2)
   -1   284 D 3 (#3d4f21)
   -1   285 R 6 (#246e22)
   -1   286 U 15 (#29db11)
   -1   287 R 6 (#6edaa0)
   -1   288 U 12 (#484b61)
   -1   289 L 6 (#6edaa2)
   -1   290 U 8 (#493501)
   -1   291 R 7 (#5d18a2)
   -1   292 U 3 (#4a17b1)
   -1   293 L 9 (#1f9eb2)
   -1   294 U 4 (#4fe283)
   -1   295 L 7 (#7217e2)
   -1   296 U 4 (#4fe281)
   -1   297 R 7 (#2867c2)
   -1   298 U 8 (#46de21)
   -1   299 R 4 (#5961e2)
   -1   300 D 8 (#394411)
   -1   301 R 5 (#326882)
   -1   302 U 7 (#414e51)
   -1   303 R 10 (#33a9a2)
   -1   304 U 9 (#08dc51)
   -1   305 R 11 (#483f12)
   -1   306 U 5 (#376f01)
   -1   307 R 4 (#50bac0)
   -1   308 U 8 (#6e8c21)
   -1   309 R 10 (#167092)
   -1   310 U 8 (#404293)
   -1   311 R 7 (#953a82)
   -1   312 U 12 (#404291)
   -1   313 L 7 (#5c7582)
   -1   314 U 3 (#326d61)
   -1   315 R 10 (#7960c0)
   -1   316 D 11 (#66a8c1)
   -1   317 R 12 (#75f300)
   -1   318 D 2 (#66a8c3)
   -1   319 L 12 (#18ccd0)
   -1   320 D 10 (#2231e1)
   -1   321 R 9 (#8f76a0)
   -1   322 D 5 (#585591)
   -1   323 L 11 (#384890)
   -1   324 D 7 (#22c7b1)
   -1   325 L 7 (#8a1050)
   -1   326 D 5 (#096291)
   -1   327 L 4 (#66e550)
   -1   328 D 10 (#216c01)
   -1   329 L 9 (#6cf190)
   -1   330 D 10 (#7683c1)
   -1   331 L 9 (#05ecc0)
   -1   332 U 10 (#459413)
   -1   333 L 7 (#1a43a0)
   -1   334 D 2 (#557593)
   -1   335 L 2 (#47fe80)
   -1   336 D 13 (#4db093)
   -1   337 R 4 (#3af720)
   -1   338 D 5 (#06b261)
   -1   339 R 6 (#7e1f60)
   -1   340 D 4 (#709101)
   -1   341 R 7 (#7e1f62)
   -1   342 D 2 (#2bbbd1)
   -1   343 R 5 (#2050d0)
   -1   344 U 14 (#8e50b1)
   -1   345 R 5 (#55efb0)
   -1   346 U 6 (#147081)
   -1   347 R 6 (#137320)
   -1   348 D 4 (#1047d1)
   -1   349 R 5 (#33a880)
   -1   350 D 6 (#8f2f93)
   -1   351 L 12 (#186b70)
   -1   352 D 4 (#860693)
   -1   353 R 12 (#08ae40)
   -1   354 D 6 (#101663)
   -1   355 R 7 (#597790)
   -1   356 D 4 (#2ac7f3)
   -1   357 L 3 (#18cb10)
   -1   358 D 4 (#43a413)
   -1   359 L 7 (#18cb12)
   -1   360 U 4 (#3d18d3)
   -1   361 L 6 (#3f9040)
   -1   362 D 7 (#448fb1)
   -1   363 R 6 (#6ae4d0)
   -1   364 D 4 (#2ade11)
   -1   365 R 10 (#6ae4d2)
   -1   366 D 4 (#3c1711)
   -1   367 R 4 (#2a27c0)
   -1   368 D 3 (#30bbb3)
   -1   369 R 8 (#84bff0)
   -1   370 U 9 (#1c12d1)
   -1   371 R 11 (#0c24a0)
   -1   372 U 6 (#626c31)
   -1   373 R 3 (#618320)
   -1   374 U 9 (#380fe1)
   -1   375 R 14 (#462210)
   -1   376 U 3 (#0cb7b1)
   -1   377 R 5 (#3fbcf2)
   -1   378 U 7 (#855e61)
   -1   379 L 6 (#36b5e2)
   -1   380 U 4 (#855e63)
   -1   381 L 9 (#3d5702)
   -1   382 U 3 (#2573a1)
   -1   383 L 7 (#3c2f20)
   -1   384 U 9 (#60cb91)
   -1   385 R 7 (#311920)
   -1   386 D 3 (#45c451)
   -1   387 R 8 (#4067f0)
   -1   388 U 12 (#4c5b81)
   -1   389 R 9 (#973f00)
   -1   390 D 12 (#016101)
   -1   391 R 3 (#696210)
   -1   392 D 10 (#3dd841)
   -1   393 R 5 (#58ad20)
   -1   394 U 5 (#33ca01)
   -1   395 R 14 (#0356a2)
   -1   396 D 5 (#55c131)
   -1   397 R 6 (#0356a0)
   -1   398 D 2 (#2eec71)
   -1   399 R 7 (#58ad22)
   -1   400 D 9 (#73b831)
   -1   401 L 11 (#696212)
   -1   402 D 12 (#562f41)
   -1   403 L 3 (#0fb450)
   -1   404 D 5 (#2306a1)
   -1   405 L 4 (#90ab20)
   -1   406 U 15 (#151451)
   -1   407 L 7 (#13bcd0)
   -1   408 U 2 (#357ed1)
   -1   409 L 7 (#11a1c2)
   -1   410 D 12 (#51acd1)
   -1   411 L 11 (#7e5122)
   -1   412 D 4 (#651b41)
   -1   413 L 9 (#4e5bd2)
   -1   414 D 13 (#79eca1)
   -1   415 L 4 (#326342)
   -1   416 D 4 (#7f54e1)
   -1   417 L 6 (#303812)
   -1   418 D 7 (#1f1641)
   -1   419 L 11 (#557572)
   -1   420 D 6 (#64b501)
   -1   421 L 9 (#3dbc92)
   -1   422 U 3 (#628813)
   -1   423 L 5 (#40df92)
   -1   424 U 10 (#41f863)
   -1   425 L 5 (#308632)
   -1   426 D 5 (#1f97d3)
   -1   427 L 12 (#116cb0)
   -1   428 D 6 (#7a90c3)
   -1   429 R 12 (#116cb2)
   -1   430 D 9 (#47fba3)
   -1   431 R 9 (#8a7e22)
   -1   432 D 6 (#592b83)
   -1   433 R 13 (#1577e2)
   -1   434 D 7 (#162c53)
   -1   435 L 10 (#59e022)
   -1   436 D 11 (#73c3e1)
   -1   437 R 10 (#08ac70)
   -1   438 D 3 (#7c67b1)
   -1   439 R 11 (#0e45f2)
   -1   440 D 4 (#604fc3)
   -1   441 R 7 (#31bd92)
   -1   442 D 7 (#3bd893)
   -1   443 L 3 (#5e6ec2)
   -1   444 D 10 (#5852b3)
   -1   445 R 7 (#18f192)
   -1   446 D 5 (#1b1f41)
   -1   447 R 9 (#7624c2)
   -1   448 U 5 (#35a501)
   -1   449 R 5 (#3c8190)
   -1   450 D 12 (#5d1861)
   -1   451 L 8 (#3c8192)
   -1   452 D 5 (#469e61)
   -1   453 L 7 (#303d42)
   -1   454 U 5 (#7595c1)
   -1   455 L 6 (#6d6c80)
   -1   456 D 4 (#4a7691)
   -1   457 L 12 (#2c9180)
   -1   458 D 4 (#981bf3)
   -1   459 L 14 (#3b5170)
   -1   460 D 3 (#981bf1)
   -1   461 R 7 (#3dc980)
   -1   462 D 5 (#4a7693)
   -1   463 R 12 (#4aace0)
   -1   464 D 7 (#726771)
   -1   465 L 14 (#08ac72)
   -1   466 D 5 (#0660b1)
   -1   467 L 5 (#7e4992)
   -1   468 D 6 (#177301)
   -1   469 L 4 (#32bea2)
   -1   470 D 11 (#23a031)
   -1   471 L 8 (#6f00b2)
   -1   472 D 6 (#23a033)
   -1   473 L 14 (#1f58f2)
   -1   474 U 6 (#49ae81)
   -1   475 L 7 (#4f02b0)
   -1   476 U 7 (#592bf1)
   -1   477 L 6 (#561ba0)
   -1   478 U 6 (#0b3711)
   -1   479 L 2 (#4ddd40)
   -1   480 U 8 (#6fe7c3)
   -1   481 L 11 (#4cf840)
   -1   482 U 5 (#012ca3)
   -1   483 R 4 (#18bc90)
   -1   484 U 6 (#012ca1)
   -1   485 R 9 (#4e18e0)
   -1   486 U 8 (#6fe7c1)
   -1   487 R 10 (#09a1e0)
   -1   488 D 5 (#79e5e1)
   -1   489 R 4 (#531062)
   -1   490 U 5 (#0840f3)
   -1   491 R 10 (#26a220)
   -1   492 D 8 (#3d1503)
   -1   493 R 5 (#0407b2)
   -1   494 U 6 (#241033)
   -1   495 R 6 (#0407b0)
   -1   496 U 6 (#4cf003)
   -1   497 L 6 (#26a222)
   -1   498 U 6 (#151513)
   -1   499 L 6 (#63a0b2)
   -1   500 U 10 (#5984e1)
   -1   501 L 4 (#169992)
   -1   502 U 5 (#063cb3)
   -1   503 L 9 (#67a882)
   -1   504 U 6 (#063cb1)
   -1   505 L 7 (#33c942)
   -1   506 D 14 (#41bc51)
   -1   507 L 5 (#1d7ca0)
   -1   508 D 3 (#08e773)
   -1   509 L 5 (#838e70)
   -1   510 D 4 (#08e771)
   -1   511 L 6 (#110040)
   -1   512 U 7 (#302a01)
   -1   513 R 5 (#549bc2)
   -1   514 U 7 (#898301)
   -1   515 L 5 (#5f4dd0)
   -1   516 U 3 (#180e51)
   -1   517 L 3 (#235670)
   -1   518 D 8 (#44d421)
   -1   519 L 10 (#7a58a0)
   -1   520 D 8 (#44d423)
   -1   521 L 5 (#330430)
   -1   522 D 4 (#0a3701)
   -1   523 L 9 (#840820)
   -1   524 D 11 (#0dc433)
   -1   525 L 2 (#1e1620)
   -1   526 D 4 (#092f53)
   -1   527 L 4 (#0b85b2)
   -1   528 D 4 (#848813)
   -1   529 L 10 (#0b85b0)
   -1   530 D 11 (#0e2ed3)
   -1   531 L 7 (#13c660)
   -1   532 D 7 (#58b303)
   -1   533 L 3 (#523600)
   -1   534 D 11 (#1587b1)
   -1   535 L 6 (#23c730)
   -1   536 D 5 (#6fb511)
   -1   537 L 6 (#23c732)
   -1   538 D 10 (#19e711)
   -1   539 L 10 (#3ed9a0)
   -1   540 D 6 (#633991)
   -1   541 L 5 (#845760)
   -1   542 D 4 (#11a581)
   -1   543 L 8 (#79ed52)
   -1   544 D 6 (#13eaa1)
   -1   545 L 6 (#0cc702)
   -1   546 D 9 (#5933b1)
   -1   547 L 10 (#501220)
   -1   548 D 8 (#18b601)
   -1   549 R 10 (#24abb0)
   -1   550 D 7 (#659331)
   -1   551 R 4 (#0f5f80)
   -1   552 D 4 (#0ca3f1)
   -1   553 R 10 (#841d52)
   -1   554 D 6 (#026d01)
   -1   555 L 7 (#0cc700)
   -1   556 D 14 (#1e2f71)
   -1   557 L 7 (#247a02)
   -1   558 U 14 (#703553)
   -1   559 L 7 (#5d2812)
   -1   560 D 7 (#105e43)
   -1   561 L 8 (#327d12)
   -1   562 U 9 (#1cc023)
   -1   563 L 6 (#45f0c2)
   -1   564 D 11 (#5e68b3)
   -1   565 L 9 (#786dd0)
   -1   566 D 14 (#1ceb83)
   -1   567 R 9 (#75c2b2)
   -1   568 D 9 (#150751)
   -1   569 L 5 (#4f6762)
   -1   570 D 5 (#267841)
   -1   571 L 8 (#250ed2)
   -1   572 U 3 (#6b17c1)
   -1   573 L 10 (#583a82)
   -1   574 U 3 (#3bef71)
   -1   575 L 5 (#68e0f2)
   -1   576 U 11 (#4fdf61)
   -1   577 L 12 (#485b32)
   -1   578 U 4 (#0dfe11)
   -1   579 R 4 (#614b92)
   -1   580 U 6 (#8b2c33)
   -1   581 R 10 (#58dab2)
   -1   582 D 6 (#349073)
   -1   583 R 3 (#5d7782)
   -1   584 U 4 (#248903)
   -1   585 R 10 (#19ee82)
   -1   586 U 6 (#6c1543)
   -1   587 L 6 (#6a8212)
   -1   588 U 8 (#2c7ee3)
   -1   589 L 5 (#22ab82)
   -1   590 U 3 (#8a9d43)
   -1   591 L 11 (#217212)
   -1   592 U 4 (#385233)
   -1   593 L 2 (#10d002)
   -1   594 U 9 (#4d36b1)
   -1   595 L 9 (#19ace2)
   -1   596 U 5 (#6f27d1)
   -1   597 L 4 (#7d9e82)
   -1   598 U 11 (#241d03)
   -1   599 L 9 (#0e0cc2)
   -1   600 U 5 (#1e5093)
   -1   601 L 4 (#8a9a32)
   -1   602 U 6 (#414ef3)
   -1   603 R 12 (#8a9a30)
   -1   604 U 2 (#38a203)
   -1   605 L 12 (#3456f2)
   -1   606 U 3 (#156dd3)
   -1   607 L 3 (#267ac2)
   -1   608 U 10 (#3b5203)
   -1   609 L 2 (#4912d2)
   -1   610 U 5 (#750db3)
   -1   611 L 11 (#4912d0)
   -1   612 U 8 (#15f963)
   -1   613 L 3 (#5897d2)
   -1   614 U 3 (#401cc3)
   -1   615 L 9 (#32ffc2)
   -1   616 U 7 (#78bde3)
   -1   617 L 6 (#3fc702)
   -1   618 D 6 (#4fd523)
   -1   619 L 12 (#5be3d2)
   -1   620 D 2 (#401483)
   -1   621 L 3 (#4eb542)
   -1   622 D 13 (#0cf9c3)
   -1   623 L 3 (#4b3d42)
   -1   624 U 14 (#6716d3)
   -1   625 L 6 (#12d372)
   -1   626 U 7 (#69f8a3)
   -1   627 L 9 (#7210b2)
   -1   628 D 7 (#1740b3)
   -1   629 L 5 (#083fe2)
   -1   630 U 9 (#515bc3)

diff --git a/2023/18/solution.rs b/2023/18/solution.rs

@@ -0,0 +1,72 @@
   -1     1 #[path = "../lib.rs"]
   -1     2 mod lib;
   -1     3 
   -1     4 enum Dir {
   -1     5     Left,
   -1     6     Right,
   -1     7     Up,
   -1     8     Down,
   -1     9 }
   -1    10 
   -1    11 fn parse_input() -> (Vec<(Dir, i64)>, Vec<(Dir, i64)>) {
   -1    12     let mut v1 = vec![];
   -1    13     let mut v2 = vec![];
   -1    14 
   -1    15     for line in lib::iter_input() {
   -1    16         let (d, tail) = line.split_once(' ').unwrap();
   -1    17         let dir1 = match d {
   -1    18             "L" => Dir::Left,
   -1    19             "R" => Dir::Right,
   -1    20             "U" => Dir::Up,
   -1    21             "D" => Dir::Down,
   -1    22             _ => unreachable!(),
   -1    23         };
   -1    24         let (n, c) = tail.split_once(' ').unwrap();
   -1    25         let count1 = n.parse().unwrap();
   -1    26         v1.push((dir1, count1));
   -1    27 
   -1    28         let count2 = i64::from_str_radix(&c[2..7], 16).unwrap();
   -1    29         let dir2 = match c.bytes().nth(7).unwrap() {
   -1    30             b'0' => Dir::Right,
   -1    31             b'1' => Dir::Down,
   -1    32             b'2' => Dir::Left,
   -1    33             b'3' => Dir::Up,
   -1    34             _ => unreachable!(),
   -1    35         };
   -1    36         v2.push((dir2, count2));
   -1    37     }
   -1    38 
   -1    39     return (v1, v2);
   -1    40 }
   -1    41 
   -1    42 fn count(border: &Vec<(Dir, i64)>) -> i64 {
   -1    43     let mut x = 0;
   -1    44     let mut sum = 0;
   -1    45     let mut edge = 0;
   -1    46     for (dir, k) in border.iter() {
   -1    47         match dir {
   -1    48             Dir::Left => {
   -1    49                 x -= k;
   -1    50             }
   -1    51             Dir::Right => {
   -1    52                 x += k;
   -1    53                 edge += k;
   -1    54             }
   -1    55             Dir::Up => {
   -1    56                 sum += k * x;
   -1    57             }
   -1    58             Dir::Down => {
   -1    59                 sum -= k * x;
   -1    60                 edge += k;
   -1    61             }
   -1    62         };
   -1    63     }
   -1    64     return sum.abs() + edge + 1;
   -1    65 }
   -1    66 
   -1    67 fn main() {
   -1    68     let (v1, v2) = parse_input();
   -1    69 
   -1    70     println!("part1: {}", count(&v1));
   -1    71     println!("part2: {}", count(&v2));
   -1    72 }

diff --git a/2023/18/test.txt b/2023/18/test.txt

@@ -0,0 +1,14 @@
   -1     1 R 6 (#70c710)
   -1     2 D 5 (#0dc571)
   -1     3 L 2 (#5713f0)
   -1     4 D 2 (#d2c081)
   -1     5 R 2 (#59c680)
   -1     6 D 2 (#411b91)
   -1     7 L 5 (#8ceee2)
   -1     8 U 2 (#caa173)
   -1     9 L 1 (#1b58a2)
   -1    10 U 2 (#caa171)
   -1    11 R 2 (#7807d2)
   -1    12 U 3 (#a77fa3)
   -1    13 L 2 (#015232)
   -1    14 U 2 (#7a21e3)