adventofcode

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

commit
511459df2a9ea55e2a3831d06c784046a4efab55
parent
c233d563941c3a4e30efc3af97ae664ec2a6c5d6
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2023-12-23 23:13
2023-12-22

Diffstat

A 2023/22/input.txt 1419 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A 2023/22/solution.rs 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A 2023/22/test.txt 7 +++++++

3 files changed, 1525 insertions, 0 deletions


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

@@ -0,0 +1,1419 @@
   -1     1 9,3,263~9,5,263
   -1     2 8,6,291~8,9,291
   -1     3 5,9,169~8,9,169
   -1     4 0,5,138~0,7,138
   -1     5 0,3,80~0,6,80
   -1     6 2,1,147~4,1,147
   -1     7 8,5,212~8,5,214
   -1     8 2,0,298~4,0,298
   -1     9 9,7,64~9,9,64
   -1    10 4,0,207~7,0,207
   -1    11 5,7,211~5,8,211
   -1    12 5,0,227~7,0,227
   -1    13 7,6,152~7,9,152
   -1    14 5,4,320~8,4,320
   -1    15 0,0,135~1,0,135
   -1    16 0,0,235~0,1,235
   -1    17 0,7,223~1,7,223
   -1    18 7,5,213~7,6,213
   -1    19 2,0,153~2,2,153
   -1    20 5,7,29~5,9,29
   -1    21 0,5,313~0,8,313
   -1    22 3,4,317~5,4,317
   -1    23 4,6,21~6,6,21
   -1    24 4,0,210~7,0,210
   -1    25 5,1,77~8,1,77
   -1    26 8,4,138~8,8,138
   -1    27 6,6,111~6,8,111
   -1    28 3,2,306~3,5,306
   -1    29 6,6,143~6,8,143
   -1    30 5,8,182~7,8,182
   -1    31 4,1,267~6,1,267
   -1    32 2,3,43~2,5,43
   -1    33 0,2,84~0,2,86
   -1    34 6,3,253~7,3,253
   -1    35 5,5,308~6,5,308
   -1    36 5,2,237~7,2,237
   -1    37 0,3,52~0,4,52
   -1    38 2,5,45~2,7,45
   -1    39 0,2,229~0,4,229
   -1    40 5,2,83~7,2,83
   -1    41 8,5,180~8,7,180
   -1    42 0,9,84~0,9,86
   -1    43 6,2,345~6,5,345
   -1    44 8,1,199~8,3,199
   -1    45 9,0,171~9,2,171
   -1    46 6,1,11~9,1,11
   -1    47 1,0,270~2,0,270
   -1    48 4,5,154~4,7,154
   -1    49 7,3,106~7,6,106
   -1    50 5,1,312~5,3,312
   -1    51 7,6,20~7,8,20
   -1    52 6,5,175~8,5,175
   -1    53 2,1,171~5,1,171
   -1    54 0,4,206~2,4,206
   -1    55 6,9,150~9,9,150
   -1    56 4,0,73~4,3,73
   -1    57 2,5,274~4,5,274
   -1    58 6,3,223~6,4,223
   -1    59 2,2,15~3,2,15
   -1    60 7,9,147~8,9,147
   -1    61 1,0,222~4,0,222
   -1    62 5,6,268~5,8,268
   -1    63 6,5,241~6,5,243
   -1    64 4,3,320~4,5,320
   -1    65 1,7,14~1,9,14
   -1    66 9,0,196~9,0,196
   -1    67 5,1,177~7,1,177
   -1    68 5,8,291~6,8,291
   -1    69 4,6,4~4,7,4
   -1    70 3,1,225~3,4,225
   -1    71 3,3,155~3,5,155
   -1    72 8,1,110~8,3,110
   -1    73 9,6,22~9,6,25
   -1    74 8,6,293~8,6,297
   -1    75 8,8,241~8,8,243
   -1    76 1,1,131~1,3,131
   -1    77 5,4,229~5,6,229
   -1    78 1,4,185~3,4,185
   -1    79 1,1,133~4,1,133
   -1    80 4,2,196~4,4,196
   -1    81 1,4,209~1,5,209
   -1    82 9,5,208~9,7,208
   -1    83 5,2,35~7,2,35
   -1    84 3,6,98~6,6,98
   -1    85 5,8,131~7,8,131
   -1    86 2,2,294~2,5,294
   -1    87 4,2,296~4,3,296
   -1    88 4,7,264~6,7,264
   -1    89 2,3,286~4,3,286
   -1    90 0,1,87~0,2,87
   -1    91 3,7,120~4,7,120
   -1    92 7,5,177~7,7,177
   -1    93 5,3,37~5,6,37
   -1    94 4,8,305~4,9,305
   -1    95 8,5,178~8,7,178
   -1    96 4,6,201~6,6,201
   -1    97 8,6,28~8,8,28
   -1    98 3,2,33~5,2,33
   -1    99 7,0,116~9,0,116
   -1   100 0,0,304~2,0,304
   -1   101 5,3,201~5,3,203
   -1   102 7,2,49~7,5,49
   -1   103 6,0,53~6,2,53
   -1   104 3,1,17~3,3,17
   -1   105 3,5,34~5,5,34
   -1   106 4,2,137~4,5,137
   -1   107 2,6,106~2,8,106
   -1   108 9,6,249~9,8,249
   -1   109 9,5,54~9,5,54
   -1   110 5,0,226~5,2,226
   -1   111 5,2,346~5,4,346
   -1   112 1,6,152~1,6,155
   -1   113 6,9,235~8,9,235
   -1   114 7,8,288~8,8,288
   -1   115 0,8,143~2,8,143
   -1   116 8,5,15~8,7,15
   -1   117 7,7,315~9,7,315
   -1   118 4,6,1~5,6,1
   -1   119 1,5,191~1,5,193
   -1   120 8,3,339~8,4,339
   -1   121 5,1,244~5,3,244
   -1   122 7,5,58~7,7,58
   -1   123 6,8,88~8,8,88
   -1   124 4,0,107~4,2,107
   -1   125 8,3,220~9,3,220
   -1   126 4,5,37~4,5,37
   -1   127 0,6,273~2,6,273
   -1   128 0,0,38~3,0,38
   -1   129 2,5,321~5,5,321
   -1   130 3,1,329~6,1,329
   -1   131 7,0,169~9,0,169
   -1   132 6,7,34~9,7,34
   -1   133 2,0,144~2,2,144
   -1   134 7,1,180~9,1,180
   -1   135 3,6,89~6,6,89
   -1   136 1,7,189~1,9,189
   -1   137 6,2,231~6,4,231
   -1   138 0,6,215~0,9,215
   -1   139 2,0,225~5,0,225
   -1   140 4,4,272~4,6,272
   -1   141 0,6,319~0,7,319
   -1   142 2,3,275~2,5,275
   -1   143 0,1,321~0,4,321
   -1   144 5,7,109~5,9,109
   -1   145 2,3,140~2,3,140
   -1   146 7,6,34~9,6,34
   -1   147 7,7,216~7,9,216
   -1   148 8,5,309~9,5,309
   -1   149 2,4,121~2,7,121
   -1   150 5,9,158~8,9,158
   -1   151 3,8,139~4,8,139
   -1   152 4,8,15~4,8,18
   -1   153 0,2,271~1,2,271
   -1   154 7,5,51~9,5,51
   -1   155 1,6,265~1,9,265
   -1   156 2,3,2~2,6,2
   -1   157 6,3,228~7,3,228
   -1   158 4,5,6~6,5,6
   -1   159 9,3,199~9,3,199
   -1   160 4,9,3~4,9,5
   -1   161 7,5,139~7,7,139
   -1   162 3,8,19~4,8,19
   -1   163 0,5,40~0,7,40
   -1   164 1,2,22~1,5,22
   -1   165 3,8,183~5,8,183
   -1   166 7,3,348~9,3,348
   -1   167 7,0,292~7,2,292
   -1   168 3,3,237~3,6,237
   -1   169 4,2,145~6,2,145
   -1   170 4,3,121~4,5,121
   -1   171 3,0,56~6,0,56
   -1   172 4,5,204~4,7,204
   -1   173 0,1,50~2,1,50
   -1   174 1,8,118~3,8,118
   -1   175 0,4,155~0,7,155
   -1   176 8,9,236~8,9,239
   -1   177 6,8,224~8,8,224
   -1   178 5,4,173~7,4,173
   -1   179 4,7,313~6,7,313
   -1   180 7,9,260~7,9,263
   -1   181 5,4,166~7,4,166
   -1   182 2,3,292~2,5,292
   -1   183 7,5,320~7,8,320
   -1   184 2,7,299~2,9,299
   -1   185 9,2,37~9,5,37
   -1   186 5,7,255~5,9,255
   -1   187 6,2,46~6,4,46
   -1   188 8,8,1~8,9,1
   -1   189 3,1,126~7,1,126
   -1   190 6,0,130~6,3,130
   -1   191 9,0,41~9,2,41
   -1   192 3,4,182~5,4,182
   -1   193 0,4,192~2,4,192
   -1   194 6,1,5~9,1,5
   -1   195 5,2,197~7,2,197
   -1   196 2,4,336~4,4,336
   -1   197 0,5,316~0,6,316
   -1   198 2,7,123~2,7,126
   -1   199 0,5,288~0,7,288
   -1   200 8,7,294~9,7,294
   -1   201 2,8,70~2,9,70
   -1   202 7,9,7~8,9,7
   -1   203 6,2,219~7,2,219
   -1   204 7,5,42~7,7,42
   -1   205 8,8,41~8,8,43
   -1   206 3,6,3~3,6,4
   -1   207 4,7,138~7,7,138
   -1   208 0,8,33~0,8,35
   -1   209 6,0,92~6,0,93
   -1   210 3,8,295~6,8,295
   -1   211 1,2,1~1,3,1
   -1   212 6,3,202~6,7,202
   -1   213 1,2,222~4,2,222
   -1   214 6,5,271~9,5,271
   -1   215 1,7,306~1,9,306
   -1   216 6,7,112~6,7,114
   -1   217 5,4,15~5,6,15
   -1   218 0,7,72~2,7,72
   -1   219 7,1,47~7,3,47
   -1   220 1,5,64~1,7,64
   -1   221 4,5,79~7,5,79
   -1   222 6,3,340~8,3,340
   -1   223 9,6,141~9,9,141
   -1   224 1,6,257~1,8,257
   -1   225 3,7,20~4,7,20
   -1   226 7,9,225~7,9,227
   -1   227 5,8,133~6,8,133
   -1   228 4,3,335~5,3,335
   -1   229 6,3,113~8,3,113
   -1   230 7,1,117~9,1,117
   -1   231 9,4,203~9,5,203
   -1   232 0,6,11~3,6,11
   -1   233 2,6,144~3,6,144
   -1   234 6,9,66~8,9,66
   -1   235 6,0,294~6,0,296
   -1   236 3,6,92~4,6,92
   -1   237 0,7,8~2,7,8
   -1   238 7,1,69~7,4,69
   -1   239 1,8,67~3,8,67
   -1   240 2,0,172~2,1,172
   -1   241 5,1,246~7,1,246
   -1   242 1,9,68~3,9,68
   -1   243 2,7,165~2,9,165
   -1   244 0,2,228~0,3,228
   -1   245 3,3,284~6,3,284
   -1   246 7,0,53~7,2,53
   -1   247 8,3,230~8,5,230
   -1   248 4,5,122~7,5,122
   -1   249 3,6,93~3,7,93
   -1   250 7,0,167~9,0,167
   -1   251 0,4,2~1,4,2
   -1   252 6,0,14~8,0,14
   -1   253 2,3,254~4,3,254
   -1   254 3,5,212~3,8,212
   -1   255 2,9,14~5,9,14
   -1   256 8,9,82~9,9,82
   -1   257 4,1,300~4,3,300
   -1   258 6,3,82~9,3,82
   -1   259 6,3,11~8,3,11
   -1   260 2,2,10~2,3,10
   -1   261 3,7,209~4,7,209
   -1   262 7,2,21~9,2,21
   -1   263 3,4,343~6,4,343
   -1   264 2,6,336~5,6,336
   -1   265 8,1,14~8,1,16
   -1   266 4,9,256~5,9,256
   -1   267 1,2,173~3,2,173
   -1   268 0,6,213~0,7,213
   -1   269 2,9,64~5,9,64
   -1   270 3,0,67~4,0,67
   -1   271 6,5,228~9,5,228
   -1   272 7,8,239~9,8,239
   -1   273 6,2,88~6,4,88
   -1   274 8,0,170~8,1,170
   -1   275 3,0,279~4,0,279
   -1   276 3,6,239~3,8,239
   -1   277 5,3,301~5,4,301
   -1   278 5,2,5~5,3,5
   -1   279 4,6,31~4,7,31
   -1   280 6,4,36~6,5,36
   -1   281 1,5,44~1,6,44
   -1   282 8,6,162~8,8,162
   -1   283 2,8,33~2,8,33
   -1   284 2,2,150~2,3,150
   -1   285 3,5,41~5,5,41
   -1   286 1,3,269~4,3,269
   -1   287 3,8,292~6,8,292
   -1   288 9,5,313~9,7,313
   -1   289 0,0,274~2,0,274
   -1   290 7,4,62~7,6,62
   -1   291 9,3,53~9,5,53
   -1   292 3,3,136~3,6,136
   -1   293 2,4,183~2,6,183
   -1   294 3,9,325~5,9,325
   -1   295 2,6,14~3,6,14
   -1   296 1,6,48~1,9,48
   -1   297 9,2,311~9,5,311
   -1   298 4,2,143~4,4,143
   -1   299 7,7,253~7,9,253
   -1   300 5,4,314~8,4,314
   -1   301 8,4,94~8,6,94
   -1   302 9,5,262~9,8,262
   -1   303 5,4,185~5,6,185
   -1   304 4,5,171~5,5,171
   -1   305 6,6,235~8,6,235
   -1   306 9,5,202~9,6,202
   -1   307 4,3,146~6,3,146
   -1   308 5,6,72~5,7,72
   -1   309 0,4,139~0,6,139
   -1   310 7,0,268~7,1,268
   -1   311 4,7,153~4,8,153
   -1   312 6,8,296~9,8,296
   -1   313 3,2,34~3,4,34
   -1   314 2,0,6~2,0,8
   -1   315 5,2,64~5,3,64
   -1   316 4,7,165~4,8,165
   -1   317 7,7,77~9,7,77
   -1   318 0,8,261~2,8,261
   -1   319 3,5,132~3,9,132
   -1   320 1,3,286~1,3,288
   -1   321 7,6,13~7,6,16
   -1   322 6,9,229~7,9,229
   -1   323 0,5,189~1,5,189
   -1   324 7,5,36~7,5,39
   -1   325 3,4,294~5,4,294
   -1   326 8,0,262~8,2,262
   -1   327 6,0,20~6,2,20
   -1   328 5,8,14~6,8,14
   -1   329 5,7,220~7,7,220
   -1   330 2,9,35~2,9,37
   -1   331 0,6,225~0,8,225
   -1   332 1,2,326~1,4,326
   -1   333 5,5,306~8,5,306
   -1   334 8,1,277~8,2,277
   -1   335 1,7,4~1,9,4
   -1   336 5,5,288~5,6,288
   -1   337 5,3,39~6,3,39
   -1   338 0,1,270~2,1,270
   -1   339 9,3,233~9,5,233
   -1   340 0,8,3~2,8,3
   -1   341 5,4,168~5,6,168
   -1   342 0,8,264~0,9,264
   -1   343 9,1,245~9,4,245
   -1   344 5,6,10~7,6,10
   -1   345 6,8,184~8,8,184
   -1   346 7,1,343~7,3,343
   -1   347 5,4,43~6,4,43
   -1   348 6,3,135~6,6,135
   -1   349 1,6,55~1,8,55
   -1   350 7,4,105~9,4,105
   -1   351 8,2,274~8,3,274
   -1   352 5,3,246~6,3,246
   -1   353 3,7,123~5,7,123
   -1   354 5,3,65~5,3,67
   -1   355 5,4,254~6,4,254
   -1   356 0,4,122~2,4,122
   -1   357 0,5,151~0,6,151
   -1   358 5,0,6~5,2,6
   -1   359 0,9,82~2,9,82
   -1   360 7,5,231~7,7,231
   -1   361 3,6,311~4,6,311
   -1   362 9,3,159~9,3,161
   -1   363 8,0,13~8,2,13
   -1   364 3,2,167~3,2,170
   -1   365 4,4,99~4,6,99
   -1   366 1,9,143~3,9,143
   -1   367 2,6,111~2,8,111
   -1   368 0,7,318~3,7,318
   -1   369 2,3,146~2,3,147
   -1   370 6,1,256~6,1,259
   -1   371 4,9,33~6,9,33
   -1   372 4,0,70~4,3,70
   -1   373 7,5,318~9,5,318
   -1   374 2,1,8~2,3,8
   -1   375 0,7,287~3,7,287
   -1   376 0,4,6~0,6,6
   -1   377 5,2,20~5,5,20
   -1   378 4,3,339~6,3,339
   -1   379 8,5,337~8,5,337
   -1   380 0,8,31~2,8,31
   -1   381 2,8,162~4,8,162
   -1   382 1,8,309~3,8,309
   -1   383 5,2,219~5,3,219
   -1   384 7,2,231~7,4,231
   -1   385 6,9,252~6,9,253
   -1   386 8,4,111~8,4,111
   -1   387 5,9,118~8,9,118
   -1   388 7,4,328~9,4,328
   -1   389 5,4,82~7,4,82
   -1   390 4,6,209~6,6,209
   -1   391 7,0,264~9,0,264
   -1   392 0,3,311~1,3,311
   -1   393 1,7,11~1,7,13
   -1   394 3,2,146~3,4,146
   -1   395 0,3,70~2,3,70
   -1   396 7,3,257~9,3,257
   -1   397 1,2,219~2,2,219
   -1   398 4,4,283~7,4,283
   -1   399 7,7,180~7,8,180
   -1   400 5,0,162~5,1,162
   -1   401 3,8,145~3,8,147
   -1   402 0,3,10~0,5,10
   -1   403 5,5,334~8,5,334
   -1   404 3,7,142~3,9,142
   -1   405 1,7,16~3,7,16
   -1   406 8,4,110~8,6,110
   -1   407 3,3,263~5,3,263
   -1   408 3,9,322~5,9,322
   -1   409 0,8,253~4,8,253
   -1   410 0,4,79~0,6,79
   -1   411 2,5,260~2,8,260
   -1   412 3,3,43~5,3,43
   -1   413 4,2,36~4,4,36
   -1   414 3,2,1~3,3,1
   -1   415 6,3,30~7,3,30
   -1   416 6,4,249~6,4,252
   -1   417 8,6,141~8,7,141
   -1   418 0,1,278~0,1,278
   -1   419 0,5,300~1,5,300
   -1   420 1,8,255~3,8,255
   -1   421 1,4,260~1,4,263
   -1   422 7,8,293~9,8,293
   -1   423 3,6,47~5,6,47
   -1   424 6,7,90~6,9,90
   -1   425 1,7,211~1,9,211
   -1   426 6,1,264~7,1,264
   -1   427 3,5,244~3,7,244
   -1   428 3,1,265~3,1,267
   -1   429 8,3,73~8,5,73
   -1   430 8,1,269~9,1,269
   -1   431 1,4,126~1,7,126
   -1   432 7,2,136~9,2,136
   -1   433 5,3,193~7,3,193
   -1   434 1,4,52~1,4,54
   -1   435 4,5,129~7,5,129
   -1   436 2,1,157~5,1,157
   -1   437 1,8,131~2,8,131
   -1   438 8,5,111~8,7,111
   -1   439 9,1,280~9,3,280
   -1   440 3,5,125~3,6,125
   -1   441 8,4,23~8,6,23
   -1   442 6,7,148~6,7,148
   -1   443 6,1,215~7,1,215
   -1   444 1,2,48~3,2,48
   -1   445 7,4,30~7,6,30
   -1   446 5,1,137~5,3,137
   -1   447 8,7,168~8,9,168
   -1   448 5,0,59~5,3,59
   -1   449 4,1,343~4,3,343
   -1   450 5,2,238~5,5,238
   -1   451 6,5,190~8,5,190
   -1   452 9,1,36~9,3,36
   -1   453 8,4,234~8,5,234
   -1   454 9,2,55~9,4,55
   -1   455 2,5,284~2,7,284
   -1   456 4,3,180~4,5,180
   -1   457 4,6,137~4,8,137
   -1   458 2,1,170~2,3,170
   -1   459 9,1,1~9,1,2
   -1   460 3,8,252~5,8,252
   -1   461 1,2,133~1,2,134
   -1   462 4,3,349~6,3,349
   -1   463 6,9,257~8,9,257
   -1   464 3,7,161~5,7,161
   -1   465 8,1,228~8,2,228
   -1   466 5,3,337~8,3,337
   -1   467 5,0,144~7,0,144
   -1   468 3,5,153~6,5,153
   -1   469 2,0,297~4,0,297
   -1   470 0,9,122~2,9,122
   -1   471 0,4,76~1,4,76
   -1   472 5,5,284~5,9,284
   -1   473 6,0,253~6,2,253
   -1   474 6,3,24~6,5,24
   -1   475 1,3,28~1,5,28
   -1   476 3,5,42~3,5,45
   -1   477 3,1,277~3,3,277
   -1   478 2,5,276~3,5,276
   -1   479 4,1,330~4,4,330
   -1   480 1,3,144~3,3,144
   -1   481 9,6,35~9,8,35
   -1   482 9,8,65~9,9,65
   -1   483 0,3,194~0,5,194
   -1   484 3,4,31~3,6,31
   -1   485 8,1,227~8,2,227
   -1   486 4,4,306~4,5,306
   -1   487 5,0,24~6,0,24
   -1   488 9,5,249~9,5,250
   -1   489 2,2,177~2,5,177
   -1   490 4,0,134~6,0,134
   -1   491 3,3,120~3,3,122
   -1   492 3,4,201~3,6,201
   -1   493 2,4,248~5,4,248
   -1   494 9,3,35~9,5,35
   -1   495 5,9,31~7,9,31
   -1   496 5,6,68~8,6,68
   -1   497 7,0,345~7,3,345
   -1   498 1,0,75~1,2,75
   -1   499 7,1,326~7,4,326
   -1   500 4,2,85~6,2,85
   -1   501 5,3,254~6,3,254
   -1   502 4,7,32~4,9,32
   -1   503 4,0,257~6,0,257
   -1   504 1,5,71~1,7,71
   -1   505 8,8,39~8,9,39
   -1   506 9,1,14~9,1,16
   -1   507 5,0,78~5,1,78
   -1   508 2,3,78~2,4,78
   -1   509 6,3,115~6,3,118
   -1   510 2,9,166~2,9,168
   -1   511 1,5,327~1,7,327
   -1   512 7,0,20~9,0,20
   -1   513 7,1,124~8,1,124
   -1   514 1,8,133~2,8,133
   -1   515 1,7,19~3,7,19
   -1   516 7,2,50~9,2,50
   -1   517 7,0,66~9,0,66
   -1   518 0,8,147~0,8,149
   -1   519 2,2,119~2,3,119
   -1   520 8,5,79~8,7,79
   -1   521 4,0,234~4,3,234
   -1   522 0,1,319~0,3,319
   -1   523 1,8,105~3,8,105
   -1   524 3,6,44~3,8,44
   -1   525 6,7,116~6,9,116
   -1   526 3,6,134~5,6,134
   -1   527 7,3,28~9,3,28
   -1   528 1,9,308~3,9,308
   -1   529 4,8,251~7,8,251
   -1   530 0,9,233~2,9,233
   -1   531 9,3,197~9,4,197
   -1   532 8,5,236~8,5,239
   -1   533 5,5,120~7,5,120
   -1   534 5,3,13~7,3,13
   -1   535 5,5,154~5,7,154
   -1   536 7,0,233~7,3,233
   -1   537 1,7,135~3,7,135
   -1   538 7,8,165~8,8,165
   -1   539 3,0,268~3,2,268
   -1   540 9,2,119~9,4,119
   -1   541 2,6,315~2,8,315
   -1   542 2,5,216~2,7,216
   -1   543 3,3,61~6,3,61
   -1   544 4,3,50~7,3,50
   -1   545 2,4,28~3,4,28
   -1   546 4,8,266~4,8,269
   -1   547 1,2,125~1,4,125
   -1   548 2,1,265~2,3,265
   -1   549 9,6,100~9,9,100
   -1   550 5,4,88~5,4,91
   -1   551 2,2,18~4,2,18
   -1   552 2,3,123~2,3,126
   -1   553 5,2,338~5,4,338
   -1   554 1,0,211~4,0,211
   -1   555 4,2,140~4,4,140
   -1   556 4,6,7~6,6,7
   -1   557 8,6,27~8,6,27
   -1   558 2,0,19~2,2,19
   -1   559 1,1,11~3,1,11
   -1   560 0,4,266~0,4,268
   -1   561 9,7,318~9,7,321
   -1   562 6,8,301~6,9,301
   -1   563 0,6,64~0,8,64
   -1   564 5,1,1~5,4,1
   -1   565 2,0,111~2,0,113
   -1   566 0,8,145~0,9,145
   -1   567 6,6,145~6,7,145
   -1   568 5,1,128~5,3,128
   -1   569 1,5,270~1,7,270
   -1   570 5,8,135~6,8,135
   -1   571 2,2,236~2,4,236
   -1   572 8,4,141~8,5,141
   -1   573 5,5,310~5,7,310
   -1   574 3,0,137~5,0,137
   -1   575 4,9,93~6,9,93
   -1   576 4,6,145~5,6,145
   -1   577 3,2,334~3,4,334
   -1   578 4,3,19~4,5,19
   -1   579 3,3,172~5,3,172
   -1   580 9,4,244~9,5,244
   -1   581 0,7,312~0,9,312
   -1   582 1,4,303~5,4,303
   -1   583 3,7,96~5,7,96
   -1   584 7,4,55~7,6,55
   -1   585 2,2,190~4,2,190
   -1   586 3,0,62~5,0,62
   -1   587 1,0,301~4,0,301
   -1   588 2,4,235~2,7,235
   -1   589 6,6,19~9,6,19
   -1   590 8,6,261~8,8,261
   -1   591 2,5,219~2,5,222
   -1   592 6,6,23~6,8,23
   -1   593 8,6,112~8,6,115
   -1   594 1,3,19~3,3,19
   -1   595 1,4,188~1,7,188
   -1   596 2,9,232~4,9,232
   -1   597 8,3,158~8,3,161
   -1   598 2,3,283~5,3,283
   -1   599 3,0,166~5,0,166
   -1   600 7,0,252~9,0,252
   -1   601 4,5,207~4,6,207
   -1   602 1,0,74~1,1,74
   -1   603 3,5,111~3,8,111
   -1   604 0,8,138~0,8,140
   -1   605 4,9,288~6,9,288
   -1   606 2,8,167~5,8,167
   -1   607 3,1,301~6,1,301
   -1   608 4,1,257~4,3,257
   -1   609 7,5,135~9,5,135
   -1   610 2,5,312~2,7,312
   -1   611 0,6,137~3,6,137
   -1   612 7,6,232~7,7,232
   -1   613 6,0,339~6,1,339
   -1   614 8,5,193~8,5,195
   -1   615 7,8,259~9,8,259
   -1   616 5,4,170~8,4,170
   -1   617 0,4,9~1,4,9
   -1   618 3,3,32~6,3,32
   -1   619 1,4,204~4,4,204
   -1   620 7,3,344~9,3,344
   -1   621 9,3,164~9,6,164
   -1   622 5,5,144~5,7,144
   -1   623 2,0,214~2,2,214
   -1   624 2,7,206~4,7,206
   -1   625 7,0,250~9,0,250
   -1   626 0,5,144~0,7,144
   -1   627 2,1,37~4,1,37
   -1   628 7,5,204~7,6,204
   -1   629 2,1,6~2,2,6
   -1   630 3,2,241~5,2,241
   -1   631 6,5,250~8,5,250
   -1   632 3,4,29~5,4,29
   -1   633 0,2,80~3,2,80
   -1   634 7,2,221~7,6,221
   -1   635 3,3,149~3,3,150
   -1   636 8,6,21~8,8,21
   -1   637 9,0,19~9,3,19
   -1   638 5,3,197~6,3,197
   -1   639 3,8,9~4,8,9
   -1   640 3,4,331~6,4,331
   -1   641 8,6,156~8,9,156
   -1   642 5,4,243~6,4,243
   -1   643 2,0,196~2,2,196
   -1   644 3,3,115~3,6,115
   -1   645 0,3,76~3,3,76
   -1   646 6,6,99~9,6,99
   -1   647 0,5,282~3,5,282
   -1   648 5,2,272~6,2,272
   -1   649 1,5,52~2,5,52
   -1   650 9,6,63~9,8,63
   -1   651 4,9,119~5,9,119
   -1   652 5,1,149~5,4,149
   -1   653 6,7,206~6,7,208
   -1   654 7,4,67~7,8,67
   -1   655 6,1,321~6,4,321
   -1   656 4,3,252~5,3,252
   -1   657 5,5,28~5,8,28
   -1   658 2,4,47~2,6,47
   -1   659 5,6,267~7,6,267
   -1   660 2,0,131~4,0,131
   -1   661 7,6,140~7,6,141
   -1   662 4,7,141~6,7,141
   -1   663 7,8,298~8,8,298
   -1   664 6,6,61~9,6,61
   -1   665 6,8,25~6,8,27
   -1   666 7,1,23~7,2,23
   -1   667 6,8,92~6,8,94
   -1   668 8,3,275~8,3,276
   -1   669 5,2,261~5,2,264
   -1   670 6,5,198~6,6,198
   -1   671 9,0,40~9,2,40
   -1   672 2,3,342~5,3,342
   -1   673 5,4,69~5,5,69
   -1   674 5,0,143~5,1,143
   -1   675 6,6,291~6,7,291
   -1   676 0,6,230~2,6,230
   -1   677 1,5,78~1,6,78
   -1   678 5,9,160~7,9,160
   -1   679 1,4,77~1,7,77
   -1   680 3,7,236~5,7,236
   -1   681 7,0,248~7,3,248
   -1   682 2,4,291~4,4,291
   -1   683 0,8,142~2,8,142
   -1   684 2,7,29~2,8,29
   -1   685 3,8,21~5,8,21
   -1   686 3,5,224~3,7,224
   -1   687 5,5,87~5,9,87
   -1   688 6,2,234~6,5,234
   -1   689 9,0,194~9,2,194
   -1   690 5,5,38~5,6,38
   -1   691 2,0,158~2,3,158
   -1   692 4,3,164~6,3,164
   -1   693 4,2,271~4,3,271
   -1   694 6,1,82~8,1,82
   -1   695 4,4,292~4,6,292
   -1   696 2,3,167~5,3,167
   -1   697 3,6,123~5,6,123
   -1   698 4,5,80~5,5,80
   -1   699 6,5,8~9,5,8
   -1   700 0,2,313~0,4,313
   -1   701 9,0,117~9,0,120
   -1   702 5,0,346~7,0,346
   -1   703 4,2,105~4,5,105
   -1   704 5,3,282~5,5,282
   -1   705 6,5,303~9,5,303
   -1   706 1,8,170~2,8,170
   -1   707 8,1,17~8,1,20
   -1   708 3,1,154~3,3,154
   -1   709 6,0,204~6,2,204
   -1   710 0,5,154~0,7,154
   -1   711 6,1,270~6,4,270
   -1   712 4,5,17~5,5,17
   -1   713 1,5,308~1,7,308
   -1   714 1,2,329~1,4,329
   -1   715 0,0,266~0,2,266
   -1   716 7,3,10~9,3,10
   -1   717 1,2,76~1,2,77
   -1   718 8,3,13~8,7,13
   -1   719 3,1,276~6,1,276
   -1   720 9,1,230~9,2,230
   -1   721 1,6,267~3,6,267
   -1   722 2,6,64~2,8,64
   -1   723 1,0,225~1,2,225
   -1   724 6,2,48~6,2,50
   -1   725 2,0,159~4,0,159
   -1   726 5,6,33~7,6,33
   -1   727 3,2,310~3,4,310
   -1   728 3,8,24~5,8,24
   -1   729 8,5,71~8,8,71
   -1   730 7,2,322~7,4,322
   -1   731 0,1,273~0,1,275
   -1   732 0,4,265~3,4,265
   -1   733 7,3,254~9,3,254
   -1   734 1,7,75~1,7,75
   -1   735 5,4,265~5,6,265
   -1   736 4,1,129~8,1,129
   -1   737 2,0,173~2,1,173
   -1   738 9,1,116~9,3,116
   -1   739 1,8,35~1,9,35
   -1   740 8,5,40~8,6,40
   -1   741 3,4,1~3,5,1
   -1   742 5,3,176~5,4,176
   -1   743 5,5,66~8,5,66
   -1   744 3,4,289~5,4,289
   -1   745 4,8,285~7,8,285
   -1   746 7,0,115~7,2,115
   -1   747 0,0,58~0,2,58
   -1   748 2,0,3~4,0,3
   -1   749 1,1,62~4,1,62
   -1   750 3,5,245~3,8,245
   -1   751 8,4,316~8,4,317
   -1   752 0,4,237~0,6,237
   -1   753 6,5,31~8,5,31
   -1   754 6,3,35~6,4,35
   -1   755 0,7,221~0,9,221
   -1   756 8,3,102~8,6,102
   -1   757 6,7,187~6,8,187
   -1   758 6,6,298~6,8,298
   -1   759 8,7,151~8,9,151
   -1   760 8,3,107~8,5,107
   -1   761 6,0,132~6,2,132
   -1   762 6,0,335~6,2,335
   -1   763 7,1,120~9,1,120
   -1   764 1,5,119~1,7,119
   -1   765 4,2,259~7,2,259
   -1   766 2,1,138~4,1,138
   -1   767 4,1,3~4,3,3
   -1   768 2,0,108~5,0,108
   -1   769 6,1,21~6,1,21
   -1   770 6,2,224~9,2,224
   -1   771 1,8,112~4,8,112
   -1   772 5,7,108~6,7,108
   -1   773 3,9,66~5,9,66
   -1   774 8,7,167~8,9,167
   -1   775 3,1,260~3,4,260
   -1   776 2,2,164~3,2,164
   -1   777 4,4,279~6,4,279
   -1   778 8,6,87~8,8,87
   -1   779 2,0,36~3,0,36
   -1   780 5,2,34~5,4,34
   -1   781 2,8,173~2,9,173
   -1   782 9,2,275~9,3,275
   -1   783 4,6,337~4,8,337
   -1   784 8,5,159~8,7,159
   -1   785 8,6,200~8,6,201
   -1   786 0,1,82~0,3,82
   -1   787 4,3,295~4,4,295
   -1   788 2,4,186~5,4,186
   -1   789 2,2,216~4,2,216
   -1   790 8,6,172~8,8,172
   -1   791 8,7,317~8,9,317
   -1   792 0,0,66~0,2,66
   -1   793 1,9,303~2,9,303
   -1   794 1,0,24~1,2,24
   -1   795 9,4,266~9,7,266
   -1   796 5,4,246~7,4,246
   -1   797 7,2,163~7,5,163
   -1   798 7,0,130~7,2,130
   -1   799 4,8,140~4,9,140
   -1   800 8,1,76~8,3,76
   -1   801 1,5,112~3,5,112
   -1   802 8,1,39~8,2,39
   -1   803 0,3,285~2,3,285
   -1   804 9,2,123~9,4,123
   -1   805 5,7,127~5,7,128
   -1   806 4,4,59~4,6,59
   -1   807 2,2,40~2,5,40
   -1   808 1,1,3~3,1,3
   -1   809 4,4,240~6,4,240
   -1   810 4,9,238~6,9,238
   -1   811 1,7,34~1,9,34
   -1   812 7,4,207~7,4,209
   -1   813 7,7,182~7,7,184
   -1   814 0,6,45~1,6,45
   -1   815 0,3,251~3,3,251
   -1   816 0,5,297~3,5,297
   -1   817 0,3,346~2,3,346
   -1   818 8,5,142~8,7,142
   -1   819 5,1,81~5,1,84
   -1   820 4,7,261~6,7,261
   -1   821 7,4,78~7,7,78
   -1   822 1,3,148~1,6,148
   -1   823 3,5,248~3,5,250
   -1   824 8,2,217~8,4,217
   -1   825 1,2,175~1,2,176
   -1   826 4,3,187~4,6,187
   -1   827 2,7,209~2,9,209
   -1   828 5,3,200~5,4,200
   -1   829 4,5,214~4,8,214
   -1   830 9,4,34~9,5,34
   -1   831 6,8,250~6,9,250
   -1   832 0,4,1~0,6,1
   -1   833 3,3,108~4,3,108
   -1   834 2,7,233~4,7,233
   -1   835 3,5,227~3,7,227
   -1   836 4,6,12~4,9,12
   -1   837 8,5,37~8,6,37
   -1   838 2,3,31~2,6,31
   -1   839 2,6,60~2,8,60
   -1   840 2,2,63~3,2,63
   -1   841 6,0,289~8,0,289
   -1   842 8,3,67~8,5,67
   -1   843 7,2,153~9,2,153
   -1   844 0,2,323~2,2,323
   -1   845 3,9,172~5,9,172
   -1   846 6,5,210~9,5,210
   -1   847 3,4,259~3,7,259
   -1   848 1,3,257~3,3,257
   -1   849 7,0,235~7,3,235
   -1   850 5,4,312~8,4,312
   -1   851 7,0,32~7,3,32
   -1   852 7,7,60~7,9,60
   -1   853 1,4,30~1,4,33
   -1   854 7,0,118~7,0,120
   -1   855 0,7,258~2,7,258
   -1   856 5,2,267~5,4,267
   -1   857 0,0,181~0,0,183
   -1   858 1,6,313~1,8,313
   -1   859 1,2,2~1,2,4
   -1   860 0,9,79~4,9,79
   -1   861 5,2,67~5,2,67
   -1   862 8,4,2~9,4,2
   -1   863 8,2,121~9,2,121
   -1   864 7,7,190~7,7,190
   -1   865 0,0,47~0,2,47
   -1   866 3,5,134~7,5,134
   -1   867 0,8,135~2,8,135
   -1   868 6,8,233~9,8,233
   -1   869 7,8,171~8,8,171
   -1   870 7,5,54~8,5,54
   -1   871 1,0,64~3,0,64
   -1   872 0,3,43~0,5,43
   -1   873 2,2,152~2,3,152
   -1   874 6,4,126~8,4,126
   -1   875 0,0,234~0,1,234
   -1   876 0,0,178~0,3,178
   -1   877 2,4,239~2,4,241
   -1   878 4,3,232~5,3,232
   -1   879 8,1,130~8,2,130
   -1   880 5,4,71~5,4,73
   -1   881 2,3,173~2,5,173
   -1   882 0,8,110~4,8,110
   -1   883 0,0,68~0,2,68
   -1   884 1,8,104~2,8,104
   -1   885 3,2,162~6,2,162
   -1   886 7,2,267~7,4,267
   -1   887 8,7,16~8,8,16
   -1   888 3,8,51~5,8,51
   -1   889 1,0,275~1,2,275
   -1   890 8,2,38~9,2,38
   -1   891 3,5,235~3,8,235
   -1   892 4,7,314~4,9,314
   -1   893 2,7,230~5,7,230
   -1   894 9,9,267~9,9,270
   -1   895 6,2,265~9,2,265
   -1   896 5,7,17~5,8,17
   -1   897 6,3,27~8,3,27
   -1   898 5,1,178~5,1,180
   -1   899 2,2,184~4,2,184
   -1   900 4,3,138~4,4,138
   -1   901 0,4,143~0,5,143
   -1   902 4,3,5~4,4,5
   -1   903 7,8,4~7,8,4
   -1   904 1,9,301~3,9,301
   -1   905 4,4,108~4,6,108
   -1   906 8,1,123~8,1,123
   -1   907 2,3,13~2,3,14
   -1   908 2,3,312~3,3,312
   -1   909 8,8,139~9,8,139
   -1   910 4,6,107~4,8,107
   -1   911 1,5,311~1,6,311
   -1   912 4,4,85~6,4,85
   -1   913 4,6,230~6,6,230
   -1   914 0,7,210~3,7,210
   -1   915 7,5,147~7,5,149
   -1   916 5,0,139~7,0,139
   -1   917 0,3,73~0,4,73
   -1   918 6,1,1~6,3,1
   -1   919 4,1,161~4,3,161
   -1   920 5,0,64~8,0,64
   -1   921 7,5,128~7,6,128
   -1   922 2,6,175~4,6,175
   -1   923 3,5,8~3,7,8
   -1   924 2,4,125~2,4,127
   -1   925 9,7,142~9,9,142
   -1   926 7,0,255~8,0,255
   -1   927 8,3,272~8,3,273
   -1   928 3,6,101~3,8,101
   -1   929 5,0,145~7,0,145
   -1   930 6,0,287~6,3,287
   -1   931 8,4,300~8,6,300
   -1   932 6,0,326~6,2,326
   -1   933 5,3,76~5,4,76
   -1   934 6,2,324~9,2,324
   -1   935 5,0,35~7,0,35
   -1   936 6,8,261~6,8,261
   -1   937 5,0,254~5,1,254
   -1   938 6,4,80~6,5,80
   -1   939 2,9,235~3,9,235
   -1   940 1,5,140~3,5,140
   -1   941 5,2,201~7,2,201
   -1   942 2,6,51~3,6,51
   -1   943 3,4,198~4,4,198
   -1   944 5,9,245~5,9,246
   -1   945 0,2,232~0,4,232
   -1   946 1,0,71~1,1,71
   -1   947 2,7,169~2,9,169
   -1   948 8,8,91~9,8,91
   -1   949 9,3,195~9,4,195
   -1   950 4,3,82~5,3,82
   -1   951 2,3,198~4,3,198
   -1   952 4,3,162~7,3,162
   -1   953 2,3,179~4,3,179
   -1   954 0,5,140~0,5,142
   -1   955 9,3,31~9,5,31
   -1   956 7,1,37~9,1,37
   -1   957 1,4,50~3,4,50
   -1   958 4,6,8~4,8,8
   -1   959 2,9,32~3,9,32
   -1   960 2,9,73~3,9,73
   -1   961 1,6,309~3,6,309
   -1   962 5,0,230~6,0,230
   -1   963 5,9,96~7,9,96
   -1   964 4,8,212~7,8,212
   -1   965 2,7,114~4,7,114
   -1   966 1,5,158~1,8,158
   -1   967 2,1,149~3,1,149
   -1   968 4,1,150~6,1,150
   -1   969 8,4,46~8,4,49
   -1   970 7,4,234~7,7,234
   -1   971 2,2,45~2,4,45
   -1   972 9,1,228~9,4,228
   -1   973 4,1,302~4,1,302
   -1   974 6,7,305~8,7,305
   -1   975 0,4,5~2,4,5
   -1   976 2,2,161~2,5,161
   -1   977 3,5,102~4,5,102
   -1   978 3,6,117~3,9,117
   -1   979 9,0,277~9,2,277
   -1   980 1,5,278~4,5,278
   -1   981 0,1,313~2,1,313
   -1   982 0,5,290~2,5,290
   -1   983 0,5,4~1,5,4
   -1   984 7,1,49~9,1,49
   -1   985 4,8,74~6,8,74
   -1   986 9,1,52~9,1,54
   -1   987 0,8,144~0,9,144
   -1   988 2,8,130~5,8,130
   -1   989 6,9,149~9,9,149
   -1   990 0,0,180~1,0,180
   -1   991 2,2,181~2,5,181
   -1   992 7,0,200~7,2,200
   -1   993 7,6,273~7,7,273
   -1   994 9,5,3~9,6,3
   -1   995 4,2,187~7,2,187
   -1   996 2,1,122~2,3,122
   -1   997 5,5,324~5,8,324
   -1   998 3,5,299~3,6,299
   -1   999 3,6,151~3,8,151
   -1  1000 7,2,189~7,6,189
   -1  1001 7,8,153~9,8,153
   -1  1002 0,6,149~1,6,149
   -1  1003 4,1,75~4,4,75
   -1  1004 7,6,129~9,6,129
   -1  1005 2,6,65~2,8,65
   -1  1006 6,3,195~6,5,195
   -1  1007 0,6,227~1,6,227
   -1  1008 5,6,71~5,8,71
   -1  1009 9,3,83~9,3,84
   -1  1010 3,7,242~6,7,242
   -1  1011 3,0,294~5,0,294
   -1  1012 4,7,104~6,7,104
   -1  1013 2,9,40~4,9,40
   -1  1014 1,2,314~2,2,314
   -1  1015 3,0,278~3,1,278
   -1  1016 5,4,286~5,7,286
   -1  1017 0,1,44~0,3,44
   -1  1018 8,7,73~8,7,76
   -1  1019 5,5,3~5,5,5
   -1  1020 5,1,36~7,1,36
   -1  1021 8,4,41~8,4,43
   -1  1022 5,1,19~7,1,19
   -1  1023 4,8,324~4,9,324
   -1  1024 8,2,200~8,2,201
   -1  1025 4,2,223~4,5,223
   -1  1026 8,1,171~8,1,174
   -1  1027 4,4,268~4,4,270
   -1  1028 6,1,260~6,1,261
   -1  1029 8,6,234~8,9,234
   -1  1030 9,7,236~9,9,236
   -1  1031 0,2,2~0,3,2
   -1  1032 0,3,252~0,5,252
   -1  1033 3,4,40~5,4,40
   -1  1034 6,6,13~6,7,13
   -1  1035 1,8,103~3,8,103
   -1  1036 5,0,274~7,0,274
   -1  1037 9,3,124~9,3,124
   -1  1038 9,1,115~9,5,115
   -1  1039 5,5,174~6,5,174
   -1  1040 2,4,148~4,4,148
   -1  1041 8,9,37~9,9,37
   -1  1042 8,4,139~8,7,139
   -1  1043 6,2,87~8,2,87
   -1  1044 9,6,37~9,6,39
   -1  1045 9,6,205~9,7,205
   -1  1046 0,1,264~1,1,264
   -1  1047 1,7,116~1,7,118
   -1  1048 2,1,228~4,1,228
   -1  1049 6,2,225~6,4,225
   -1  1050 1,1,129~1,4,129
   -1  1051 6,0,243~8,0,243
   -1  1052 0,2,79~0,3,79
   -1  1053 7,3,125~7,7,125
   -1  1054 6,4,64~6,7,64
   -1  1055 2,7,231~2,9,231
   -1  1056 0,8,256~0,8,256
   -1  1057 7,8,273~7,9,273
   -1  1058 4,3,173~4,6,173
   -1  1059 5,1,80~5,3,80
   -1  1060 9,1,236~9,5,236
   -1  1061 5,7,25~7,7,25
   -1  1062 0,5,224~0,7,224
   -1  1063 2,6,13~4,6,13
   -1  1064 1,6,13~1,6,16
   -1  1065 6,6,74~8,6,74
   -1  1066 6,1,33~8,1,33
   -1  1067 6,0,336~8,0,336
   -1  1068 2,4,39~2,6,39
   -1  1069 4,5,95~4,7,95
   -1  1070 7,7,219~7,9,219
   -1  1071 4,8,272~6,8,272
   -1  1072 7,2,22~9,2,22
   -1  1073 3,3,227~3,3,230
   -1  1074 2,5,125~2,6,125
   -1  1075 1,6,145~3,6,145
   -1  1076 5,3,271~8,3,271
   -1  1077 5,9,287~8,9,287
   -1  1078 1,6,237~2,6,237
   -1  1079 8,1,156~8,3,156
   -1  1080 5,0,302~8,0,302
   -1  1081 3,1,142~3,4,142
   -1  1082 5,6,91~8,6,91
   -1  1083 5,2,3~8,2,3
   -1  1084 5,5,146~6,5,146
   -1  1085 5,2,150~7,2,150
   -1  1086 3,1,39~5,1,39
   -1  1087 7,8,221~9,8,221
   -1  1088 2,5,203~3,5,203
   -1  1089 0,6,66~0,7,66
   -1  1090 1,3,308~3,3,308
   -1  1091 3,0,151~3,1,151
   -1  1092 9,3,108~9,4,108
   -1  1093 2,2,193~4,2,193
   -1  1094 6,5,201~9,5,201
   -1  1095 6,0,273~6,2,273
   -1  1096 4,6,313~4,6,314
   -1  1097 9,0,266~9,1,266
   -1  1098 2,5,262~4,5,262
   -1  1099 8,2,16~9,2,16
   -1  1100 4,2,242~4,2,245
   -1  1101 7,0,10~9,0,10
   -1  1102 2,4,332~4,4,332
   -1  1103 8,0,338~9,0,338
   -1  1104 7,0,131~8,0,131
   -1  1105 2,1,141~4,1,141
   -1  1106 0,4,131~2,4,131
   -1  1107 0,6,189~3,6,189
   -1  1108 6,1,71~7,1,71
   -1  1109 3,1,42~3,3,42
   -1  1110 3,8,46~3,8,48
   -1  1111 1,8,264~4,8,264
   -1  1112 2,2,33~2,3,33
   -1  1113 6,5,229~6,5,232
   -1  1114 0,4,315~0,7,315
   -1  1115 5,3,22~7,3,22
   -1  1116 3,9,319~5,9,319
   -1  1117 4,0,146~6,0,146
   -1  1118 5,8,257~7,8,257
   -1  1119 7,1,266~8,1,266
   -1  1120 6,6,155~7,6,155
   -1  1121 2,4,49~2,6,49
   -1  1122 0,5,39~0,7,39
   -1  1123 4,2,289~6,2,289
   -1  1124 4,9,63~7,9,63
   -1  1125 9,2,193~9,4,193
   -1  1126 3,0,128~3,3,128
   -1  1127 8,6,63~8,7,63
   -1  1128 0,7,141~0,9,141
   -1  1129 8,2,258~8,4,258
   -1  1130 3,0,219~3,1,219
   -1  1131 4,4,305~6,4,305
   -1  1132 9,0,253~9,0,256
   -1  1133 5,0,22~5,2,22
   -1  1134 7,6,305~8,6,305
   -1  1135 8,4,26~8,6,26
   -1  1136 4,1,173~4,1,175
   -1  1137 3,3,220~7,3,220
   -1  1138 0,0,55~0,1,55
   -1  1139 0,2,227~2,2,227
   -1  1140 5,8,300~5,8,302
   -1  1141 0,7,63~3,7,63
   -1  1142 3,4,121~3,6,121
   -1  1143 1,0,134~1,1,134
   -1  1144 6,8,208~9,8,208
   -1  1145 0,7,320~0,8,320
   -1  1146 1,5,146~1,6,146
   -1  1147 1,6,239~1,7,239
   -1  1148 4,6,131~4,8,131
   -1  1149 2,0,161~2,0,163
   -1  1150 8,8,216~8,9,216
   -1  1151 4,8,256~6,8,256
   -1  1152 3,5,7~3,6,7
   -1  1153 2,2,274~2,2,277
   -1  1154 9,3,223~9,7,223
   -1  1155 1,5,115~1,7,115
   -1  1156 0,9,234~0,9,238
   -1  1157 8,2,51~8,4,51
   -1  1158 3,3,83~5,3,83
   -1  1159 1,9,120~3,9,120
   -1  1160 2,7,172~2,9,172
   -1  1161 4,1,230~4,3,230
   -1  1162 6,5,237~6,5,239
   -1  1163 3,3,138~3,6,138
   -1  1164 2,6,177~4,6,177
   -1  1165 2,0,11~4,0,11
   -1  1166 9,5,315~9,6,315
   -1  1167 7,2,210~7,4,210
   -1  1168 3,0,132~5,0,132
   -1  1169 8,1,261~8,3,261
   -1  1170 3,2,49~5,2,49
   -1  1171 5,5,180~5,7,180
   -1  1172 7,1,285~7,4,285
   -1  1173 0,7,53~3,7,53
   -1  1174 5,0,167~5,0,169
   -1  1175 9,1,156~9,3,156
   -1  1176 2,4,77~5,4,77
   -1  1177 9,5,231~9,8,231
   -1  1178 9,1,272~9,3,272
   -1  1179 3,1,161~3,1,161
   -1  1180 4,4,277~4,6,277
   -1  1181 0,3,139~3,3,139
   -1  1182 0,7,145~1,7,145
   -1  1183 0,4,322~1,4,322
   -1  1184 5,6,75~5,6,76
   -1  1185 2,9,317~4,9,317
   -1  1186 6,5,102~6,7,102
   -1  1187 4,5,25~6,5,25
   -1  1188 5,4,6~7,4,6
   -1  1189 3,4,117~3,4,118
   -1  1190 8,3,38~8,5,38
   -1  1191 5,7,246~5,8,246
   -1  1192 1,7,51~2,7,51
   -1  1193 8,3,39~8,6,39
   -1  1194 1,4,266~4,4,266
   -1  1195 0,7,311~1,7,311
   -1  1196 6,4,47~6,6,47
   -1  1197 1,0,230~1,2,230
   -1  1198 4,5,98~7,5,98
   -1  1199 7,1,203~7,2,203
   -1  1200 3,3,250~6,3,250
   -1  1201 5,1,251~7,1,251
   -1  1202 7,9,144~9,9,144
   -1  1203 0,9,218~0,9,220
   -1  1204 6,7,247~6,9,247
   -1  1205 6,9,92~8,9,92
   -1  1206 3,4,3~5,4,3
   -1  1207 3,1,332~5,1,332
   -1  1208 2,2,73~2,5,73
   -1  1209 8,1,231~8,2,231
   -1  1210 6,9,10~8,9,10
   -1  1211 1,5,151~1,6,151
   -1  1212 4,6,295~5,6,295
   -1  1213 7,3,192~9,3,192
   -1  1214 5,2,118~8,2,118
   -1  1215 1,7,149~1,7,151
   -1  1216 6,7,245~7,7,245
   -1  1217 5,5,177~5,7,177
   -1  1218 7,4,252~7,4,253
   -1  1219 1,1,259~1,4,259
   -1  1220 6,0,90~6,2,90
   -1  1221 3,7,29~3,9,29
   -1  1222 7,0,36~7,0,37
   -1  1223 5,1,228~5,4,228
   -1  1224 6,1,197~7,1,197
   -1  1225 5,3,309~5,5,309
   -1  1226 6,7,205~6,8,205
   -1  1227 5,2,216~7,2,216
   -1  1228 0,1,61~0,1,63
   -1  1229 3,0,142~6,0,142
   -1  1230 0,0,271~2,0,271
   -1  1231 7,5,29~9,5,29
   -1  1232 3,2,295~3,5,295
   -1  1233 3,5,118~6,5,118
   -1  1234 3,0,125~3,3,125
   -1  1235 2,1,217~3,1,217
   -1  1236 6,1,330~6,1,332
   -1  1237 0,3,75~0,4,75
   -1  1238 0,4,147~3,4,147
   -1  1239 5,1,336~7,1,336
   -1  1240 0,1,197~2,1,197
   -1  1241 6,7,254~6,9,254
   -1  1242 6,9,222~9,9,222
   -1  1243 6,4,204~8,4,204
   -1  1244 2,1,272~2,2,272
   -1  1245 9,6,240~9,8,240
   -1  1246 7,9,265~9,9,265
   -1  1247 5,5,70~6,5,70
   -1  1248 7,5,10~7,5,11
   -1  1249 0,4,235~0,7,235
   -1  1250 5,8,148~5,8,149
   -1  1251 2,2,191~2,4,191
   -1  1252 5,6,105~5,8,105
   -1  1253 3,1,13~3,3,13
   -1  1254 7,1,294~7,2,294
   -1  1255 7,6,325~7,9,325
   -1  1256 0,2,325~0,3,325
   -1  1257 0,5,37~2,5,37
   -1  1258 5,3,215~8,3,215
   -1  1259 9,7,3~9,9,3
   -1  1260 3,1,18~5,1,18
   -1  1261 5,7,243~5,9,243
   -1  1262 8,5,218~8,7,218
   -1  1263 2,1,311~2,4,311
   -1  1264 3,6,256~3,7,256
   -1  1265 5,7,210~7,7,210
   -1  1266 7,0,240~7,2,240
   -1  1267 0,2,237~2,2,237
   -1  1268 8,9,171~8,9,171
   -1  1269 7,1,118~7,1,119
   -1  1270 5,6,263~5,8,263
   -1  1271 0,0,233~1,0,233
   -1  1272 2,7,271~5,7,271
   -1  1273 2,6,213~2,9,213
   -1  1274 5,5,176~8,5,176
   -1  1275 6,7,323~8,7,323
   -1  1276 6,2,205~6,3,205
   -1  1277 1,1,267~1,3,267
   -1  1278 1,8,291~4,8,291
   -1  1279 6,0,52~6,2,52
   -1  1280 9,0,273~9,1,273
   -1  1281 9,5,167~9,6,167
   -1  1282 3,5,149~5,5,149
   -1  1283 1,0,70~3,0,70
   -1  1284 9,2,125~9,2,127
   -1  1285 7,7,37~9,7,37
   -1  1286 1,8,27~3,8,27
   -1  1287 6,8,235~9,8,235
   -1  1288 8,5,118~8,7,118
   -1  1289 7,0,349~7,1,349
   -1  1290 7,9,6~9,9,6
   -1  1291 7,9,93~9,9,93
   -1  1292 6,0,299~6,0,301
   -1  1293 3,3,281~3,6,281
   -1  1294 7,8,322~9,8,322
   -1  1295 1,3,347~3,3,347
   -1  1296 8,1,80~8,4,80
   -1  1297 5,8,3~7,8,3
   -1  1298 4,4,100~4,4,101
   -1  1299 8,4,29~8,4,30
   -1  1300 8,4,232~8,5,232
   -1  1301 2,6,140~2,6,141
   -1  1302 7,5,241~9,5,241
   -1  1303 8,5,216~8,7,216
   -1  1304 7,5,216~7,6,216
   -1  1305 8,7,81~8,9,81
   -1  1306 0,3,176~2,3,176
   -1  1307 1,4,25~3,4,25
   -1  1308 8,0,44~9,0,44
   -1  1309 7,1,213~7,3,213
   -1  1310 2,4,123~2,6,123
   -1  1311 8,0,268~8,1,268
   -1  1312 9,0,8~9,3,8
   -1  1313 1,5,5~1,7,5
   -1  1314 7,3,33~7,5,33
   -1  1315 9,3,225~9,5,225
   -1  1316 5,6,99~5,7,99
   -1  1317 8,2,77~8,2,78
   -1  1318 3,1,136~5,1,136
   -1  1319 2,3,34~2,5,34
   -1  1320 4,1,60~6,1,60
   -1  1321 4,5,152~4,7,152
   -1  1322 8,1,135~8,3,135
   -1  1323 7,4,249~7,5,249
   -1  1324 3,5,103~6,5,103
   -1  1325 3,5,158~3,7,158
   -1  1326 4,8,217~4,8,220
   -1  1327 4,3,341~4,5,341
   -1  1328 7,5,141~7,5,144
   -1  1329 4,5,82~4,6,82
   -1  1330 5,1,31~5,4,31
   -1  1331 1,1,20~1,3,20
   -1  1332 0,3,316~1,3,316
   -1  1333 6,7,260~6,8,260
   -1  1334 6,2,14~8,2,14
   -1  1335 7,5,270~7,8,270
   -1  1336 3,8,288~6,8,288
   -1  1337 6,1,194~6,4,194
   -1  1338 0,0,303~2,0,303
   -1  1339 5,7,32~9,7,32
   -1  1340 5,3,114~7,3,114
   -1  1341 2,2,76~3,2,76
   -1  1342 2,2,344~2,4,344
   -1  1343 4,8,25~4,9,25
   -1  1344 8,6,84~8,8,84
   -1  1345 8,3,197~8,6,197
   -1  1346 5,7,146~5,9,146
   -1  1347 2,2,295~2,2,299
   -1  1348 9,4,247~9,6,247
   -1  1349 1,3,117~3,3,117
   -1  1350 3,9,144~3,9,144
   -1  1351 2,6,118~3,6,118
   -1  1352 4,6,159~4,8,159
   -1  1353 4,8,299~4,8,302
   -1  1354 0,3,12~0,3,12
   -1  1355 4,6,84~6,6,84
   -1  1356 4,2,154~7,2,154
   -1  1357 7,9,34~9,9,34
   -1  1358 4,7,28~4,8,28
   -1  1359 0,3,195~2,3,195
   -1  1360 3,3,63~4,3,63
   -1  1361 2,3,69~5,3,69
   -1  1362 7,8,215~9,8,215
   -1  1363 2,4,7~2,4,8
   -1  1364 6,2,149~6,5,149
   -1  1365 3,7,9~3,7,11
   -1  1366 6,6,75~6,7,75
   -1  1367 0,0,269~0,1,269
   -1  1368 5,0,164~7,0,164
   -1  1369 5,7,124~5,8,124
   -1  1370 2,6,62~2,8,62
   -1  1371 8,4,75~8,4,77
   -1  1372 1,8,297~5,8,297
   -1  1373 3,3,298~5,3,298
   -1  1374 3,2,62~3,4,62
   -1  1375 6,5,245~6,6,245
   -1  1376 1,6,41~3,6,41
   -1  1377 0,6,69~2,6,69
   -1  1378 0,2,53~2,2,53
   -1  1379 4,8,2~4,8,2
   -1  1380 1,6,57~4,6,57
   -1  1381 6,1,133~8,1,133
   -1  1382 4,0,247~4,3,247
   -1  1383 8,2,157~8,2,160
   -1  1384 4,4,145~4,4,147
   -1  1385 5,6,12~5,8,12
   -1  1386 2,3,75~3,3,75
   -1  1387 3,1,159~5,1,159
   -1  1388 5,3,333~5,6,333
   -1  1389 1,0,268~1,2,268
   -1  1390 5,0,291~7,0,291
   -1  1391 3,0,258~5,0,258
   -1  1392 3,5,253~3,7,253
   -1  1393 5,1,174~7,1,174
   -1  1394 7,5,304~7,7,304
   -1  1395 2,9,76~4,9,76
   -1  1396 5,6,238~6,6,238
   -1  1397 2,7,156~4,7,156
   -1  1398 1,5,70~1,7,70
   -1  1399 3,7,290~6,7,290
   -1  1400 1,7,147~1,9,147
   -1  1401 0,7,158~0,7,158
   -1  1402 7,3,44~7,6,44
   -1  1403 6,1,112~9,1,112
   -1  1404 3,3,223~3,5,223
   -1  1405 4,1,269~5,1,269
   -1  1406 2,7,128~2,8,128
   -1  1407 0,0,186~0,0,186
   -1  1408 6,7,189~8,7,189
   -1  1409 1,1,262~3,1,262
   -1  1410 1,3,325~1,6,325
   -1  1411 1,6,219~3,6,219
   -1  1412 5,3,170~6,3,170
   -1  1413 6,1,172~6,3,172
   -1  1414 0,0,52~0,2,52
   -1  1415 3,6,148~5,6,148
   -1  1416 2,0,35~2,2,35
   -1  1417 0,1,51~0,3,51
   -1  1418 0,8,233~2,8,233
   -1  1419 3,0,229~5,0,229

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

@@ -0,0 +1,99 @@
   -1     1 use std::collections::HashMap;
   -1     2 use std::collections::HashSet;
   -1     3 use std::collections::VecDeque;
   -1     4 
   -1     5 #[path = "../lib.rs"]
   -1     6 mod lib;
   -1     7 
   -1     8 type XYZ = (usize, usize, usize);
   -1     9 
   -1    10 fn parse_input() -> Vec<(XYZ, XYZ)> {
   -1    11     let mut bricks = vec![];
   -1    12     for line in lib::iter_input() {
   -1    13         let (s1, s2) = line.split_once('~').unwrap();
   -1    14         let v1 = s1.split(',').map(|s| s.parse().unwrap()).collect::<Vec<usize>>();
   -1    15         let v2 = s2.split(',').map(|s| s.parse().unwrap()).collect::<Vec<usize>>();
   -1    16         assert!(v1[0] <= v2[0]);
   -1    17         assert!(v1[1] <= v2[1]);
   -1    18         assert!(v1[2] <= v2[2]);
   -1    19         bricks.push(((v1[0], v1[1], v1[2]), (v2[0], v2[1], v2[2])));
   -1    20     }
   -1    21     bricks.sort_by_key(|brick| brick.0.2);
   -1    22     return bricks;
   -1    23 }
   -1    24 
   -1    25 fn get_support(bricks: &Vec<(XYZ, XYZ)>) -> Vec<HashSet<usize>> {
   -1    26     let mut heights: HashMap<(usize, usize), (usize, usize)> = HashMap::new();
   -1    27     let mut supported_by = vec![HashSet::new(); bricks.len()];
   -1    28 
   -1    29     for (i, brick) in bricks.iter().enumerate() {
   -1    30         let mut zn = 0;
   -1    31         for x in brick.0.0..=brick.1.0 {
   -1    32             for y in brick.0.1..=brick.1.1 {
   -1    33                 if let Some((z, j)) = heights.get(&(x, y)) {
   -1    34                     if *z > zn {
   -1    35                         zn = *z;
   -1    36                         supported_by[i].clear();
   -1    37                         supported_by[i].insert(*j);
   -1    38                     } else if *z == zn {
   -1    39                         supported_by[i].insert(*j);
   -1    40                     }
   -1    41                 }
   -1    42             }
   -1    43         }
   -1    44         for x in brick.0.0..=brick.1.0 {
   -1    45             for y in brick.0.1..=brick.1.1 {
   -1    46                 let height = brick.1.2 - brick.0.2 + 1;
   -1    47                 heights.insert((x, y), (zn + height, i));
   -1    48             }
   -1    49         }
   -1    50     }
   -1    51 
   -1    52     return supported_by;
   -1    53 }
   -1    54 
   -1    55 fn invert(supported_by: &Vec<HashSet<usize>>) -> Vec<HashSet<usize>> {
   -1    56     let mut inverse = vec![HashSet::new(); supported_by.len()];
   -1    57     for i in 0..supported_by.len() {
   -1    58         for j in supported_by[i].iter() {
   -1    59             inverse[*j].insert(i);
   -1    60         }
   -1    61     }
   -1    62     return inverse;
   -1    63 }
   -1    64 
   -1    65 fn count_falling(supported_by: &Vec<HashSet<usize>>, supports: &Vec<HashSet<usize>>, i0: usize) -> usize {
   -1    66     let mut queue = VecDeque::new();
   -1    67     let mut falling = HashSet::new();
   -1    68     queue.push_back(i0);
   -1    69     falling.insert(i0);
   -1    70     while let Some(i) = queue.pop_front() {
   -1    71         for j in supports[i].iter() {
   -1    72             if !supported_by[*j].difference(&falling).next().is_some() {
   -1    73                 falling.insert(*j);
   -1    74                 queue.push_back(*j);
   -1    75             }
   -1    76         }
   -1    77     }
   -1    78     return falling.len() - 1;
   -1    79 }
   -1    80 
   -1    81 fn main() {
   -1    82     let bricks = parse_input();
   -1    83 
   -1    84     let supported_by = get_support(&bricks);
   -1    85     let supports = invert(&supported_by);
   -1    86 
   -1    87     let mut count1 = 0;
   -1    88     let mut count2 = 0;
   -1    89     for i in 0..bricks.len() {
   -1    90         let falling = count_falling(&supported_by, &supports, i);
   -1    91         if falling == 0 {
   -1    92             count1 += 1;
   -1    93         }
   -1    94         count2 += falling;
   -1    95     }
   -1    96 
   -1    97     println!("part1: {}", count1);
   -1    98     println!("part2: {}", count2);
   -1    99 }

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

@@ -0,0 +1,7 @@
   -1     1 1,0,1~1,2,1
   -1     2 0,0,2~2,0,2
   -1     3 0,2,3~2,2,3
   -1     4 0,0,4~0,2,4
   -1     5 2,0,5~2,2,5
   -1     6 0,1,6~2,1,6
   -1     7 1,1,8~1,1,9