- 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