heh
| -rw-r--r-- | src/inp.txt | 1405 | ||||
| -rw-r--r-- | src/main.rs | 133 |
2 files changed, 208 insertions, 1330 deletions
diff --git a/src/inp.txt b/src/inp.txt index 0cde9ae..009a788 100644 --- a/src/inp.txt +++ b/src/inp.txt @@ -1,1264 +1,141 @@ -1,3,281~1,4,281 -1,6,149~1,6,151 -9,3,268~9,5,268 -8,5,199~8,6,199 -5,0,182~8,0,182 -7,4,124~7,5,124 -2,5,126~2,6,126 -6,1,91~9,1,91 -0,5,61~2,5,61 -5,3,24~7,3,24 -0,2,80~0,3,80 -0,8,86~2,8,86 -3,3,263~3,6,263 -9,2,278~9,3,278 -4,0,183~7,0,183 -4,3,11~4,5,11 -0,7,67~3,7,67 -2,4,94~2,7,94 -2,6,200~2,8,200 -2,6,28~5,6,28 -3,3,191~3,6,191 -3,5,75~5,5,75 -1,5,56~1,9,56 -7,4,203~9,4,203 -5,1,177~5,2,177 -5,5,286~7,5,286 -3,4,87~4,4,87 -4,4,113~4,6,113 -6,2,200~6,4,200 -3,7,85~5,7,85 -9,6,1~9,8,1 -0,1,248~0,1,250 -7,6,245~7,8,245 -2,0,7~5,0,7 -2,9,202~2,9,203 -3,5,104~3,6,104 -3,4,48~5,4,48 -4,4,276~4,7,276 -0,3,279~2,3,279 -3,7,247~6,7,247 -8,1,14~8,3,14 -1,1,287~1,1,287 -3,1,165~4,1,165 -3,1,199~4,1,199 -7,5,188~8,5,188 -5,7,90~5,9,90 -6,6,214~6,7,214 -3,7,51~3,8,51 -0,0,250~2,0,250 -1,7,136~3,7,136 -7,2,118~8,2,118 -1,1,185~2,1,185 -1,7,214~1,7,216 -5,3,296~6,3,296 -6,6,255~7,6,255 -8,3,174~8,4,174 -3,3,265~5,3,265 -7,4,257~9,4,257 -5,6,25~7,6,25 -0,6,39~0,7,39 -7,1,101~7,3,101 -2,7,99~2,9,99 -3,4,224~3,6,224 -3,6,32~3,6,35 -6,3,106~7,3,106 -3,5,206~6,5,206 -9,8,78~9,8,81 -5,0,287~5,2,287 -5,2,302~5,5,302 -2,1,87~3,1,87 -5,5,236~8,5,236 -6,0,189~7,0,189 -0,1,279~3,1,279 -2,5,241~2,6,241 -5,4,43~7,4,43 -3,3,261~3,5,261 -9,7,110~9,9,110 -8,6,173~9,6,173 -3,1,280~5,1,280 -9,3,260~9,3,262 -6,6,287~6,7,287 -5,7,299~7,7,299 -1,7,212~1,9,212 -4,0,288~4,3,288 -5,7,165~5,9,165 -7,3,97~7,3,98 -6,5,254~6,5,257 -6,1,58~8,1,58 -2,2,200~2,4,200 -2,2,3~2,2,4 -3,0,211~5,0,211 -1,1,187~3,1,187 -3,6,283~4,6,283 -5,6,30~7,6,30 -5,2,276~9,2,276 -5,0,23~5,0,24 -3,0,253~6,0,253 -2,6,211~2,9,211 -2,5,6~2,7,6 -0,9,137~1,9,137 -7,6,257~7,9,257 -5,6,159~5,9,159 -0,3,119~0,4,119 -0,6,4~0,6,6 -6,0,164~6,2,164 -5,9,270~7,9,270 -5,5,240~6,5,240 -0,2,197~3,2,197 -7,3,147~7,5,147 -6,0,109~7,0,109 -1,9,133~2,9,133 -5,2,267~9,2,267 -3,0,180~5,0,180 -5,8,136~7,8,136 -0,4,286~0,6,286 -5,5,191~5,7,191 -1,1,239~2,1,239 -6,4,68~6,4,70 -3,0,237~3,2,237 -3,1,110~4,1,110 -9,2,247~9,4,247 -2,0,210~2,2,210 -5,0,107~7,0,107 -2,4,184~2,7,184 -1,8,199~4,8,199 -5,1,297~5,3,297 -4,0,122~4,2,122 -5,7,41~5,9,41 -0,7,295~3,7,295 -0,8,6~0,8,7 -9,0,250~9,2,250 -2,2,97~5,2,97 -5,4,36~5,5,36 -9,6,74~9,8,74 -8,2,256~9,2,256 -8,2,268~8,4,268 -6,1,152~6,3,152 -9,2,206~9,4,206 -7,7,36~9,7,36 -1,4,146~1,6,146 -2,1,83~4,1,83 -7,4,289~8,4,289 -9,6,129~9,8,129 -6,3,169~9,3,169 -5,9,174~6,9,174 -2,8,19~5,8,19 -1,4,58~1,7,58 -0,3,268~4,3,268 -1,4,7~1,4,8 -8,7,292~8,9,292 -8,1,242~9,1,242 -4,0,208~4,2,208 -7,8,267~7,9,267 -9,8,179~9,9,179 -0,1,76~0,1,78 -2,9,32~6,9,32 -1,9,301~3,9,301 -3,2,293~3,5,293 -4,2,54~7,2,54 -5,7,66~7,7,66 -2,3,121~3,3,121 -0,2,50~3,2,50 -4,3,269~6,3,269 -0,1,129~0,4,129 -2,4,93~2,7,93 -5,3,55~5,5,55 -0,5,1~0,5,2 -3,5,115~6,5,115 -7,1,265~9,1,265 -6,3,43~7,3,43 -6,2,198~6,3,198 -8,4,209~9,4,209 -6,5,181~6,8,181 -4,2,14~6,2,14 -3,0,269~4,0,269 -9,0,154~9,2,154 -2,1,281~2,1,283 -1,7,69~1,9,69 -0,5,85~0,5,87 -1,0,119~1,2,119 -3,5,135~4,5,135 -9,0,48~9,2,48 -2,2,148~2,5,148 -3,5,138~3,5,138 -2,1,102~2,4,102 -7,7,278~7,8,278 -5,5,157~5,7,157 -0,3,49~0,4,49 -2,0,62~4,0,62 -7,2,13~7,4,13 -2,5,140~4,5,140 -3,1,205~5,1,205 -4,2,226~4,3,226 -4,7,21~7,7,21 -1,1,20~4,1,20 -3,0,240~3,0,242 -9,6,76~9,8,76 -7,8,169~9,8,169 -0,5,156~3,5,156 -7,8,10~7,8,12 -0,6,280~0,8,280 -1,0,101~1,2,101 -5,5,135~5,5,136 -8,2,207~8,5,207 -4,3,86~4,5,86 -0,7,132~3,7,132 -5,6,260~7,6,260 -1,3,43~3,3,43 -1,8,45~2,8,45 -2,2,243~2,3,243 -6,4,92~7,4,92 -2,5,177~2,7,177 -4,4,233~6,4,233 -6,8,290~8,8,290 -4,5,65~4,7,65 -3,8,268~6,8,268 -2,2,244~2,2,245 -0,9,301~0,9,304 -0,1,49~0,1,51 -7,3,166~7,6,166 -5,6,243~5,9,243 -8,3,77~8,5,77 -8,6,215~8,9,215 -2,0,252~4,0,252 -5,7,171~5,9,171 -4,0,9~4,0,11 -6,2,153~9,2,153 -7,2,209~7,4,209 -2,4,177~4,4,177 -3,4,214~6,4,214 -5,3,240~7,3,240 -2,0,201~2,2,201 -9,6,201~9,9,201 -0,2,56~0,4,56 -5,6,96~7,6,96 -5,3,217~7,3,217 -0,1,99~2,1,99 -0,7,70~0,9,70 -0,9,109~1,9,109 -4,0,202~4,2,202 -3,4,116~4,4,116 -0,2,114~3,2,114 -8,2,206~8,4,206 -7,7,101~7,7,102 -8,0,248~8,3,248 -6,0,85~6,3,85 -3,3,87~5,3,87 -3,8,65~4,8,65 -4,3,251~4,5,251 -6,6,197~8,6,197 -5,2,121~8,2,121 -0,7,79~3,7,79 -6,5,209~6,7,209 -5,5,8~6,5,8 -0,0,254~2,0,254 -4,6,170~7,6,170 -1,3,118~1,3,119 -2,8,166~3,8,166 -1,7,128~1,7,131 -5,2,244~7,2,244 -0,1,3~0,4,3 -7,5,167~7,5,169 -4,2,94~7,2,94 -6,7,218~8,7,218 -7,9,14~9,9,14 -5,2,256~5,5,256 -2,6,134~4,6,134 -4,3,57~6,3,57 -3,8,259~3,9,259 -5,7,38~6,7,38 -0,4,85~0,4,87 -6,5,133~6,6,133 -5,6,124~5,8,124 -2,0,246~3,0,246 -8,1,17~8,4,17 -5,4,240~6,4,240 -2,6,22~5,6,22 -4,7,294~5,7,294 -6,3,164~8,3,164 -4,5,48~4,7,48 -1,4,56~3,4,56 -6,9,11~8,9,11 -6,3,60~6,4,60 -0,6,229~0,8,229 -6,7,139~9,7,139 -7,3,114~7,5,114 -9,6,171~9,8,171 -9,8,112~9,9,112 -5,1,253~5,5,253 -5,0,122~8,0,122 -5,0,281~5,2,281 -9,5,2~9,5,6 -9,2,265~9,5,265 -0,1,121~0,4,121 -2,5,14~4,5,14 -3,0,17~3,0,19 -3,5,175~5,5,175 -7,1,59~7,3,59 -4,6,111~7,6,111 -6,1,238~6,5,238 -8,2,48~8,4,48 -6,2,88~6,4,88 -4,6,46~5,6,46 -2,0,273~2,2,273 -5,3,3~5,5,3 -1,6,300~3,6,300 -4,7,226~4,7,228 -0,4,10~3,4,10 -0,8,44~2,8,44 -4,0,187~4,3,187 -4,1,21~4,1,21 -7,3,259~9,3,259 -3,6,286~5,6,286 -0,3,264~3,3,264 -1,8,280~1,9,280 -2,0,92~2,0,92 -5,4,76~5,6,76 -1,5,252~1,7,252 -2,1,113~4,1,113 -4,4,221~4,7,221 -7,5,254~7,5,257 -0,4,214~0,6,214 -1,4,284~1,7,284 -3,5,291~3,8,291 -3,4,121~3,7,121 -0,4,4~2,4,4 -1,0,267~1,2,267 -1,6,258~1,8,258 -5,2,194~8,2,194 -3,3,65~6,3,65 -3,1,235~3,4,235 -9,0,285~9,4,285 -6,7,70~8,7,70 -3,3,58~3,4,58 -6,6,212~6,7,212 -1,1,178~3,1,178 -4,6,188~6,6,188 -3,3,188~5,3,188 -2,1,232~5,1,232 -8,3,126~8,4,126 -3,1,106~3,1,107 -5,3,196~7,3,196 -0,4,289~1,4,289 -4,5,209~4,7,209 -9,2,18~9,2,19 -2,1,207~3,1,207 -1,3,246~1,5,246 -9,1,45~9,3,45 -5,6,126~8,6,126 -7,8,241~7,9,241 -1,4,205~1,8,205 -8,4,136~9,4,136 -5,2,26~5,4,26 -2,0,116~4,0,116 -9,4,170~9,6,170 -5,3,61~5,5,61 -6,7,87~9,7,87 -3,9,129~6,9,129 -3,0,267~3,3,267 -2,2,124~2,5,124 -5,3,150~5,5,150 -2,6,84~2,6,86 -1,1,18~2,1,18 -2,3,258~5,3,258 -5,0,274~5,2,274 -4,1,238~5,1,238 -8,2,78~8,4,78 -3,2,266~3,4,266 -3,2,194~4,2,194 -2,7,214~2,9,214 -0,1,128~0,3,128 -1,7,213~4,7,213 -2,2,241~2,4,241 -3,6,165~3,8,165 -1,0,113~1,3,113 -7,4,252~7,7,252 -7,3,80~7,6,80 -8,4,29~8,7,29 -3,8,23~5,8,23 -6,7,132~6,9,132 -8,8,39~9,8,39 -2,8,54~2,8,56 -5,0,197~7,0,197 -4,8,295~6,8,295 -1,0,116~1,0,117 -7,6,298~7,8,298 -4,6,14~7,6,14 -8,1,81~8,3,81 -2,6,129~2,8,129 -4,2,249~4,4,249 -2,5,200~5,5,200 -5,3,212~5,4,212 -5,6,268~5,7,268 -4,3,111~7,3,111 -8,7,252~8,9,252 -5,0,20~7,0,20 -7,6,164~7,8,164 -7,3,170~9,3,170 -5,8,45~5,8,48 -6,7,62~6,8,62 -3,4,200~5,4,200 -2,5,141~5,5,141 -6,7,41~6,7,43 -2,9,75~5,9,75 -3,7,19~5,7,19 -2,5,150~2,7,150 -6,1,251~8,1,251 -3,2,11~4,2,11 -4,7,100~8,7,100 -8,4,172~8,6,172 -8,5,4~8,8,4 -2,1,98~2,4,98 -2,3,126~2,4,126 -5,2,132~8,2,132 -5,6,291~5,8,291 -1,5,219~4,5,219 -9,6,252~9,6,255 -1,6,81~1,9,81 -2,5,31~2,7,31 -2,6,72~2,9,72 -1,5,249~1,7,249 -3,0,88~6,0,88 -8,7,109~8,7,111 -5,9,176~5,9,177 -6,3,290~6,3,293 -1,7,289~1,7,291 -3,3,6~3,6,6 -3,4,265~3,7,265 -7,8,103~7,8,104 -6,6,258~6,8,258 -0,1,48~0,3,48 -0,7,78~1,7,78 -5,3,99~5,6,99 -0,4,181~2,4,181 -6,7,166~6,8,166 -0,6,291~1,6,291 -5,6,206~5,8,206 -5,3,227~5,4,227 -6,5,98~6,8,98 -6,0,3~6,0,6 -9,0,106~9,2,106 -5,6,68~7,6,68 -8,9,254~8,9,256 -3,3,69~3,3,71 -0,3,77~0,5,77 -3,2,202~3,4,202 -2,6,71~2,7,71 -2,2,247~3,2,247 -5,8,132~5,9,132 -3,1,56~4,1,56 -9,2,280~9,2,283 -1,8,52~4,8,52 -9,7,175~9,7,177 -7,4,247~7,6,247 -2,0,286~2,1,286 -7,5,47~7,5,49 -2,9,66~3,9,66 -3,2,212~4,2,212 -5,3,160~5,5,160 -3,7,124~3,9,124 -3,1,53~3,2,53 -3,0,303~5,0,303 -3,0,296~3,2,296 -7,4,11~7,5,11 -1,7,3~3,7,3 -8,2,134~8,3,134 -8,7,77~8,7,79 -4,1,13~4,3,13 -6,4,186~6,6,186 -0,7,227~0,9,227 -7,6,127~7,6,129 -5,4,178~7,4,178 -1,1,179~3,1,179 -1,8,169~2,8,169 -7,7,67~7,9,67 -3,4,137~5,4,137 -0,9,228~2,9,228 -7,9,173~9,9,173 -7,5,271~9,5,271 -4,1,262~5,1,262 -6,5,298~6,8,298 -7,5,184~7,5,187 -4,9,134~6,9,134 -1,4,148~1,6,148 -6,1,33~6,1,35 -7,2,255~9,2,255 -9,7,142~9,8,142 -0,8,47~0,8,49 -2,2,203~4,2,203 -3,2,8~3,2,8 -1,6,20~1,8,20 -3,7,229~3,8,229 -3,0,53~7,0,53 -0,3,270~1,3,270 -8,2,32~8,2,34 -2,6,301~2,8,301 -6,1,30~6,4,30 -3,0,119~5,0,119 -4,5,32~5,5,32 -3,5,132~6,5,132 -3,3,118~3,5,118 -5,5,307~5,7,307 -3,7,294~3,9,294 -0,4,180~2,4,180 -6,4,146~6,4,148 -4,4,13~6,4,13 -2,5,82~2,7,82 -5,9,275~8,9,275 -6,9,76~7,9,76 -4,7,258~4,9,258 -8,0,256~8,1,256 -6,1,265~6,3,265 -5,7,26~5,8,26 -9,5,28~9,7,28 -2,5,217~5,5,217 -1,2,172~4,2,172 -1,3,207~1,3,209 -9,4,120~9,6,120 -7,3,220~7,5,220 -6,8,260~8,8,260 -0,0,175~2,0,175 -3,1,31~6,1,31 -3,4,36~3,6,36 -4,1,191~4,2,191 -1,1,109~3,1,109 -3,5,246~4,5,246 -0,1,281~0,3,281 -1,8,83~3,8,83 -5,8,298~5,8,298 -2,2,293~2,4,293 -0,2,5~0,3,5 -2,4,45~3,4,45 -1,4,187~2,4,187 -4,2,119~7,2,119 -5,8,70~5,9,70 -3,4,50~5,4,50 -6,4,100~6,6,100 -1,0,51~1,3,51 -7,8,26~9,8,26 -7,5,276~8,5,276 -6,2,26~6,5,26 -0,1,74~0,4,74 -6,8,133~6,9,133 -2,5,202~2,5,204 -0,7,103~4,7,103 -3,4,226~5,4,226 -9,2,105~9,4,105 -9,2,197~9,4,197 -7,4,45~7,5,45 -6,3,115~8,3,115 -6,3,162~6,6,162 -3,4,222~3,7,222 -4,5,119~4,7,119 -8,1,45~8,2,45 -2,0,19~2,2,19 -0,5,39~3,5,39 -7,5,53~7,7,53 -7,7,105~9,7,105 -3,3,44~3,3,47 -4,2,148~6,2,148 -8,1,201~9,1,201 -6,0,195~6,2,195 -3,1,168~3,4,168 -9,4,201~9,4,201 -4,2,156~4,4,156 -2,3,76~2,3,76 -5,6,54~6,6,54 -6,4,247~6,4,249 -7,2,243~7,4,243 -4,1,81~4,4,81 -3,4,155~6,4,155 -7,6,108~7,7,108 -7,7,9~7,9,9 -5,2,100~5,4,100 -2,6,98~2,8,98 -2,6,176~5,6,176 -3,5,82~3,7,82 -4,1,282~6,1,282 -3,5,299~6,5,299 -9,3,245~9,6,245 -6,1,103~6,4,103 -4,2,149~4,2,150 -6,8,165~6,9,165 -4,2,20~4,2,20 -4,0,186~7,0,186 -0,5,82~0,7,82 -7,0,254~7,2,254 -6,4,63~6,7,63 -4,2,297~4,4,297 -7,0,13~9,0,13 -8,6,169~9,6,169 -5,2,193~5,3,193 -1,0,195~1,0,197 -5,9,3~5,9,4 -7,5,2~7,7,2 -6,5,210~9,5,210 -3,6,227~3,6,230 -5,1,190~7,1,190 -3,4,53~3,4,53 -4,8,303~4,9,303 -2,0,204~2,0,207 -4,7,105~4,9,105 -2,1,23~4,1,23 -5,4,199~5,6,199 -4,3,9~4,6,9 -6,8,266~7,8,266 -6,9,74~8,9,74 -5,9,105~5,9,107 -2,2,174~3,2,174 -6,0,203~6,2,203 -2,7,275~2,8,275 -5,7,163~5,8,163 -1,6,57~4,6,57 -0,3,247~1,3,247 -5,1,176~5,1,176 -5,3,286~6,3,286 -7,0,2~7,3,2 -1,4,245~4,4,245 -0,8,102~2,8,102 -4,6,204~6,6,204 -1,1,175~5,1,175 -8,6,127~9,6,127 -0,0,257~0,2,257 -0,5,239~3,5,239 -2,1,238~2,4,238 -4,9,2~4,9,4 -9,1,251~9,1,252 -4,0,178~4,1,178 -6,5,144~7,5,144 -2,4,206~2,6,206 -3,8,10~4,8,10 -4,5,290~4,7,290 -6,3,197~6,5,197 -0,7,224~0,9,224 -5,8,245~6,8,245 -9,0,16~9,2,16 -5,4,211~5,6,211 -5,4,184~5,5,184 -7,4,274~7,7,274 -2,5,230~2,5,231 -0,5,168~4,5,168 -0,4,42~2,4,42 -1,6,2~1,8,2 -8,2,208~8,2,210 -7,6,261~9,6,261 -0,4,83~0,6,83 -6,3,143~6,5,143 -4,0,104~4,2,104 -8,9,113~9,9,113 -3,5,253~3,9,253 -0,5,125~2,5,125 -2,8,15~3,8,15 -5,4,159~8,4,159 -5,1,243~7,1,243 -2,3,59~2,5,59 -3,4,297~3,6,297 -5,3,19~7,3,19 -9,0,29~9,3,29 -2,3,223~4,3,223 -5,3,25~8,3,25 -8,1,129~8,3,129 -5,3,60~5,4,60 -3,0,271~5,0,271 -7,7,279~9,7,279 -7,7,7~8,7,7 -0,1,245~1,1,245 -4,6,60~6,6,60 -2,7,87~5,7,87 -7,9,170~9,9,170 -2,4,277~4,4,277 -6,7,22~9,7,22 -6,3,12~8,3,12 -8,4,273~8,7,273 -8,3,287~8,5,287 -6,3,126~7,3,126 -0,8,109~0,8,111 -6,9,104~6,9,106 -6,6,157~7,6,157 -0,7,37~0,9,37 -3,1,181~3,1,183 -4,2,211~4,3,211 -4,8,248~6,8,248 -2,7,131~2,9,131 -6,4,118~9,4,118 -3,3,29~5,3,29 -1,6,216~1,6,218 -7,8,293~7,8,295 -0,3,126~0,6,126 -1,4,28~4,4,28 -5,1,46~7,1,46 -2,7,274~4,7,274 -5,9,5~6,9,5 -1,6,132~2,6,132 -2,9,103~4,9,103 -7,8,264~7,9,264 -8,3,292~8,5,292 -0,4,151~2,4,151 -4,6,175~4,8,175 -5,4,34~5,7,34 -3,7,21~3,8,21 -0,7,34~2,7,34 -0,8,10~0,9,10 -9,5,291~9,5,292 -7,0,9~7,3,9 -2,6,36~2,9,36 -0,3,248~0,4,248 -5,6,69~7,6,69 -2,1,246~4,1,246 -5,1,105~8,1,105 -2,0,10~2,3,10 -5,4,89~5,7,89 -6,2,29~8,2,29 -5,2,37~5,4,37 -8,3,202~9,3,202 -0,6,1~0,9,1 -5,9,303~7,9,303 -5,1,230~5,4,230 -4,6,284~6,6,284 -6,8,274~7,8,274 -8,6,35~8,6,36 -0,5,129~0,5,131 -7,2,31~7,4,31 -4,1,159~4,4,159 -0,0,243~2,0,243 -5,3,92~5,5,92 -5,6,91~5,6,93 -2,5,76~3,5,76 -1,4,114~1,5,114 -6,3,22~8,3,22 -1,3,88~1,3,89 -5,7,136~8,7,136 -2,3,4~5,3,4 -0,7,106~0,9,106 -6,0,97~6,2,97 -0,0,59~0,0,61 -5,0,90~5,0,92 -4,1,189~6,1,189 -7,3,104~9,3,104 -8,7,180~9,7,180 -7,3,250~9,3,250 -1,4,274~1,7,274 -2,7,49~4,7,49 -0,3,185~0,5,185 -0,3,282~1,3,282 -8,7,181~8,7,183 -9,6,37~9,8,37 -2,0,14~4,0,14 -4,4,202~4,6,202 -4,0,168~4,1,168 -2,7,22~2,8,22 -8,3,253~9,3,253 -1,9,283~3,9,283 -5,7,131~5,7,133 -3,5,72~3,8,72 -7,4,95~7,7,95 -1,0,174~1,2,174 -5,0,217~7,0,217 -3,3,244~3,5,244 -1,6,80~1,9,80 -5,2,91~6,2,91 -3,0,273~4,0,273 -3,3,117~3,6,117 -5,9,102~8,9,102 -5,4,183~8,4,183 -4,8,100~7,8,100 -3,7,225~3,9,225 -7,0,57~7,2,57 -7,0,286~9,0,286 -2,8,103~5,8,103 -5,2,5~5,5,5 -3,7,273~4,7,273 -7,6,184~7,8,184 -3,3,122~5,3,122 -7,5,244~7,8,244 -9,7,181~9,8,181 -0,6,213~1,6,213 -6,5,239~6,8,239 -3,4,60~3,4,62 -2,8,293~4,8,293 -8,0,46~8,1,46 -6,4,66~8,4,66 -5,1,104~7,1,104 -8,1,31~8,3,31 -2,3,71~2,4,71 -0,1,100~0,1,101 -1,0,2~1,0,4 -0,2,4~0,3,4 -7,5,138~7,7,138 -1,1,199~1,2,199 -5,3,85~5,4,85 -8,6,30~8,6,31 -9,4,38~9,4,39 -7,3,245~7,4,245 -6,7,219~8,7,219 -6,7,249~9,7,249 -1,0,65~1,2,65 -4,4,84~5,4,84 -4,1,99~4,3,99 -1,9,92~3,9,92 -8,2,279~8,3,279 -4,5,30~7,5,30 -1,5,92~4,5,92 -2,0,15~2,2,15 -9,3,112~9,6,112 -3,7,138~5,7,138 -6,0,190~8,0,190 -5,0,10~5,2,10 -3,2,169~4,2,169 -3,5,252~3,7,252 -0,7,286~2,7,286 -4,2,82~6,2,82 -3,0,215~4,0,215 -4,1,33~5,1,33 -3,6,17~3,8,17 -7,3,51~7,6,51 -7,2,117~7,4,117 -1,4,74~3,4,74 -6,0,293~8,0,293 -5,9,73~7,9,73 -3,2,300~3,4,300 -2,3,198~5,3,198 -8,5,171~8,7,171 -0,1,284~2,1,284 -3,9,44~5,9,44 -1,5,273~4,5,273 -9,0,129~9,2,129 -6,1,192~6,2,192 -3,5,58~5,5,58 -2,8,256~3,8,256 -1,0,63~3,0,63 -7,6,33~9,6,33 -0,0,114~2,0,114 -1,1,111~1,4,111 -2,2,252~4,2,252 -2,4,236~4,4,236 -3,9,95~3,9,97 -1,6,133~1,8,133 -8,1,2~9,1,2 -0,2,199~0,5,199 -6,8,240~8,8,240 -1,0,192~3,0,192 -7,3,14~7,4,14 -7,1,257~7,1,259 -6,6,246~6,6,248 -8,2,245~8,4,245 -8,2,50~9,2,50 -2,2,22~2,4,22 -1,5,227~3,5,227 -3,7,56~5,7,56 -5,4,2~7,4,2 -5,1,145~5,3,145 -1,5,8~3,5,8 -9,3,289~9,6,289 -4,3,287~7,3,287 -2,4,68~2,7,68 -7,1,26~7,3,26 -9,7,202~9,7,204 -5,5,260~5,5,260 -3,0,283~3,2,283 -5,4,232~5,6,232 -7,1,191~9,1,191 -6,3,251~6,5,251 -3,7,71~3,9,71 -4,6,224~4,8,224 -3,5,270~3,7,270 -3,1,197~6,1,197 -8,5,200~8,7,200 -3,6,101~5,6,101 -6,6,219~8,6,219 -7,5,182~7,7,182 -6,1,241~8,1,241 -3,0,52~3,2,52 -0,7,66~3,7,66 -4,9,137~4,9,139 -1,7,276~3,7,276 -4,9,300~6,9,300 -3,6,7~3,8,7 -9,5,123~9,6,123 -8,7,89~9,7,89 -1,8,207~1,8,211 -7,6,251~9,6,251 -8,7,1~8,8,1 -5,0,18~6,0,18 -1,4,94~1,7,94 -3,1,89~4,1,89 -0,0,287~2,0,287 -1,5,42~1,7,42 -0,6,217~0,6,219 -1,3,117~1,4,117 -5,2,124~7,2,124 -7,1,200~8,1,200 -5,1,266~5,3,266 -7,6,37~7,9,37 -1,4,287~2,4,287 -1,2,86~1,4,86 -3,1,3~5,1,3 -2,0,270~3,0,270 -2,6,42~3,6,42 -1,8,202~1,9,202 -8,0,197~8,3,197 -2,0,151~2,2,151 -8,8,261~8,8,261 -7,2,213~9,2,213 -9,3,138~9,6,138 -2,1,296~2,3,296 -0,6,228~0,7,228 -9,2,53~9,2,54 -3,0,61~3,2,61 -0,7,208~3,7,208 -8,0,288~8,0,290 -6,7,73~9,7,73 -7,3,109~7,5,109 -9,4,199~9,6,199 -2,5,69~2,7,69 -2,5,122~5,5,122 -5,8,207~7,8,207 -0,5,276~2,5,276 -5,3,180~5,4,180 -4,5,79~7,5,79 -0,0,57~1,0,57 -6,6,288~6,8,288 -8,7,174~9,7,174 -7,6,180~7,8,180 -4,8,168~5,8,168 -8,7,84~8,9,84 -5,2,95~7,2,95 -0,3,187~0,3,189 -5,7,162~8,7,162 -5,3,142~5,4,142 -3,7,164~5,7,164 -6,9,271~6,9,271 -0,9,204~1,9,204 -1,5,1~3,5,1 -8,6,78~8,6,80 -3,5,70~3,7,70 -0,7,80~0,7,80 -1,6,306~3,6,306 -0,1,292~2,1,292 -1,6,88~4,6,88 -3,3,282~3,4,282 -4,0,274~4,0,277 -5,8,213~8,8,213 -1,7,53~3,7,53 -7,1,92~9,1,92 -2,6,280~4,6,280 -3,5,268~3,6,268 -3,5,197~5,5,197 -4,1,5~4,4,5 -9,7,29~9,7,31 -9,5,9~9,7,9 -0,5,188~1,5,188 -2,3,142~2,5,142 -9,1,22~9,3,22 -7,6,187~8,6,187 -5,1,149~7,1,149 -6,6,76~6,7,76 -2,1,103~3,1,103 -4,3,100~4,5,100 -3,7,249~5,7,249 -2,9,68~5,9,68 -6,7,164~6,9,164 -0,5,222~0,7,222 -5,7,68~5,7,70 -1,7,72~1,7,75 -2,7,88~2,7,90 -0,3,1~1,3,1 -3,5,20~3,7,20 -3,5,167~3,7,167 -7,1,102~9,1,102 -1,4,25~2,4,25 -5,5,35~6,5,35 -5,0,17~7,0,17 -3,5,107~6,5,107 -2,5,238~5,5,238 -7,8,85~9,8,85 -3,3,84~3,6,84 -8,3,254~8,6,254 -0,5,241~1,5,241 -6,4,244~6,7,244 -9,8,182~9,8,185 -1,4,112~1,5,112 -7,3,123~9,3,123 -5,6,306~8,6,306 -3,3,148~3,3,151 -4,9,95~7,9,95 -0,7,4~0,8,4 -9,6,167~9,9,167 -0,4,183~1,4,183 -0,1,45~0,4,45 -5,9,12~8,9,12 -6,6,250~7,6,250 -8,1,259~9,1,259 -2,9,127~4,9,127 -9,1,243~9,1,245 -9,7,178~9,9,178 -7,8,210~9,8,210 -4,3,78~4,6,78 -5,7,37~5,9,37 -6,1,89~6,5,89 -1,2,82~3,2,82 -3,6,289~5,6,289 -5,7,265~8,7,265 -3,0,214~5,0,214 -2,1,161~5,1,161 -4,7,36~5,7,36 -7,1,8~7,4,8 -5,9,92~6,9,92 -4,1,264~6,1,264 -2,2,195~4,2,195 -4,7,139~4,7,140 -5,2,237~5,4,237 -5,5,208~5,6,208 -1,0,266~1,3,266 -3,1,243~3,3,243 -0,2,117~2,2,117 -3,2,239~3,2,241 -0,2,245~1,2,245 -6,6,15~8,6,15 -5,3,214~8,3,214 -8,7,23~8,8,23 -7,2,151~9,2,151 -2,3,221~2,6,221 -9,2,56~9,2,59 -9,4,78~9,6,78 -4,6,122~7,6,122 -3,3,41~3,6,41 -3,9,101~6,9,101 -4,5,277~4,6,277 -6,4,191~6,6,191 -5,2,40~5,5,40 -5,5,214~5,6,214 -3,4,294~6,4,294 -8,0,291~8,3,291 -5,2,284~5,5,284 -7,3,120~9,3,120 -3,0,125~6,0,125 -1,9,297~4,9,297 -1,5,269~3,5,269 -1,0,280~1,2,280 -8,2,133~8,5,133 -8,2,154~8,2,154 -0,3,192~0,5,192 -5,1,93~7,1,93 -8,2,238~8,5,238 -6,9,175~6,9,178 -3,5,153~7,5,153 -0,6,107~0,7,107 -5,3,261~6,3,261 -9,3,270~9,4,270 -1,0,247~3,0,247 -1,7,126~3,7,126 -7,3,154~7,6,154 -2,3,260~2,4,260 -1,7,285~3,7,285 -8,5,75~8,7,75 -6,6,194~6,8,194 -4,0,105~6,0,105 -7,7,221~8,7,221 -7,7,272~7,9,272 -5,4,129~5,6,129 -4,3,189~4,3,191 -3,3,247~5,3,247 -3,3,68~3,4,68 -0,9,201~2,9,201 -5,8,2~7,8,2 -2,7,228~3,7,228 -5,2,250~5,5,250 -4,5,257~4,7,257 -4,4,140~6,4,140 -4,6,306~4,8,306 -6,2,4~6,4,4 -4,8,72~6,8,72 -5,3,254~5,5,254 -1,2,115~4,2,115 -1,8,18~4,8,18 -1,7,43~1,8,43 -5,3,41~7,3,41 -3,0,297~3,2,297 -3,3,147~5,3,147 -1,2,206~1,4,206 -9,4,114~9,5,114 -6,7,179~9,7,179 -8,0,253~8,1,253 -1,4,63~1,6,63 -1,1,276~1,4,276 -1,9,2~2,9,2 -5,6,128~5,8,128 -8,3,293~9,3,293 -3,6,93~3,8,93 -3,6,63~3,9,63 -2,0,153~4,0,153 -0,5,133~0,8,133 -0,9,299~1,9,299 -1,1,212~3,1,212 -3,7,60~5,7,60 -5,1,259~5,4,259 -2,5,195~2,7,195 -5,4,131~5,4,134 -2,9,100~4,9,100 -1,9,261~4,9,261 -7,8,276~9,8,276 -6,4,65~6,6,65 -1,9,135~3,9,135 -4,4,173~4,6,173 -9,5,140~9,5,143 -7,6,26~9,6,26 -0,1,57~2,1,57 -5,4,234~5,5,234 -9,0,105~9,1,105 -2,6,168~4,6,168 -9,0,198~9,3,198 -6,1,44~9,1,44 -4,1,235~4,4,235 -1,5,145~2,5,145 -8,7,11~9,7,11 -4,9,56~5,9,56 -7,3,5~8,3,5 -6,6,169~6,8,169 -2,0,90~4,0,90 -7,5,1~7,6,1 -7,1,55~7,2,55 -9,1,126~9,3,126 -5,7,292~7,7,292 -3,8,53~3,8,54 -3,0,6~3,2,6 -9,1,194~9,3,194 -6,4,111~9,4,111 -8,4,216~8,6,216 -7,1,28~9,1,28 -4,6,31~7,6,31 -5,5,241~5,7,241 -1,3,290~1,4,290 -1,6,290~3,6,290 -8,5,36~8,5,37 -1,6,43~3,6,43 -8,6,242~8,9,242 -5,0,200~5,0,200 -4,6,136~4,7,136 -2,1,209~4,1,209 -5,2,191~5,3,191 -0,4,285~2,4,285 -2,4,103~3,4,103 -6,8,202~9,8,202 -3,4,31~3,6,31 -9,4,35~9,7,35 -3,0,189~5,0,189 -2,1,86~4,1,86 -1,6,36~1,8,36 -0,0,22~3,0,22 -5,4,286~9,4,286 -3,5,308~3,8,308 -7,7,262~7,9,262 -7,7,82~9,7,82 -4,4,255~4,7,255 -3,4,279~6,4,279 -4,7,59~6,7,59 -8,7,107~9,7,107 -0,2,40~0,5,40 -6,5,212~8,5,212 -3,6,12~3,9,12 -6,8,195~8,8,195 -2,7,198~2,9,198 -4,5,87~4,5,90 -2,1,290~4,1,290 -3,1,59~5,1,59 -4,0,300~4,3,300 -3,4,180~3,7,180 -1,8,87~1,8,88 -3,4,176~6,4,176 -3,6,91~3,9,91 -3,6,303~6,6,303 -4,5,259~5,5,259 -4,8,55~4,9,55 -4,3,62~4,6,62 -0,0,6~1,0,6 -5,3,95~7,3,95 -2,9,29~3,9,29 -5,3,154~5,5,154 -1,0,182~1,2,182 -9,5,273~9,7,273 -3,3,140~3,4,140 -2,2,79~2,4,79 -5,5,245~7,5,245 -6,0,91~7,0,91 -0,8,136~0,8,138 -6,0,270~6,2,270 -7,5,33~8,5,33 -2,2,268~4,2,268 -7,0,262~7,1,262 -4,7,250~4,7,251 -0,3,73~2,3,73 -4,2,17~4,2,17 -8,1,290~8,3,290 -6,0,15~7,0,15 -7,1,148~7,3,148 -2,4,81~2,4,84 -4,9,69~5,9,69 -5,4,157~8,4,157 -0,4,251~0,4,252 -0,6,109~0,7,109 -1,4,144~3,4,144 -0,2,41~0,3,41 -3,7,193~5,7,193 -7,3,200~8,3,200 -5,6,44~5,8,44 -4,6,50~4,8,50 -7,5,13~7,6,13 -0,8,277~3,8,277 -0,6,60~2,6,60 -4,5,205~6,5,205 -0,5,293~2,5,293 -1,0,54~1,2,54 -7,0,58~8,0,58 -2,3,103~5,3,103 -9,3,254~9,3,256 -3,1,162~6,1,162 -4,8,226~4,8,227 -6,1,5~6,3,5 -0,4,62~0,6,62 -2,3,292~2,6,292 -2,5,194~4,5,194 -4,2,8~4,4,8 -7,4,206~7,5,206 -6,4,243~6,6,243 -3,1,124~4,1,124 -0,1,54~0,4,54 -6,8,14~7,8,14 -6,4,198~8,4,198 -7,3,244~9,3,244 -7,8,165~9,8,165 -7,1,203~7,1,206 -5,2,53~5,6,53 -0,2,49~3,2,49 -4,0,102~4,3,102 -7,1,42~7,3,42 -5,2,122~7,2,122 -9,5,274~9,7,274 -4,8,11~6,8,11 -1,5,270~1,6,270 -4,7,277~4,9,277 -6,1,17~6,3,17 -2,5,95~2,8,95 -6,4,121~8,4,121 -0,5,9~3,5,9 -1,0,242~1,2,242 -4,6,79~4,8,79 -6,3,29~6,4,29 -0,2,118~0,3,118 -3,7,130~3,9,130 -3,4,242~3,6,242 -1,6,208~1,6,210 -3,7,26~3,9,26 -5,8,215~5,8,216 -9,0,4~9,2,4 -4,8,5~6,8,5 -1,7,255~1,7,257 -3,5,116~5,5,116 -2,8,125~3,8,125 -1,0,83~1,3,83 -4,7,253~6,7,253 -6,8,271~9,8,271 -7,0,11~7,2,11 -6,5,28~6,6,28 - +#.########################################################################################################################################### +#...###...#...#.......#...#.....#.........#...#...#...#...#...#.....#...#.......#...#...#.......#.....#...........#.....#...###...#.....#...# +###.###.#.#.#.#.#####.#.#.#.###.#.#######.#.#.#.#.#.#.#.#.#.#.#.###.#.#.#.#####.#.#.#.#.#.#####.#.###.#.#########.#.###.#.#.###.#.#.###.#.#.# +#...#...#...#.#.#.....#.#.#...#.#.......#.#.#.#.#.#.#.#.#.#.#.#.#...#.#.#...#...#.#.#.#.#.#.....#.#...#.........#.#...#.#.#...#.#.#...#.#.#.# +#.###.#######.#.#v#####.#.###.#.#######.#.#.#.#.#.#.#.#.#.#.#.#.#.###.#.###.#.###.#.#.#.#.#.#####.#.###########.#.###.#.#.###.#.#.###.#.#.#.# +#...#...#.....#.#.>.###.#.#...#.#.....#.#.#.#.#.#.#.#.#.#...#...#.>.>.#...#.#...#.#...#...#.#...#.#.....#.......#.###.#.#.#...#.#.###.#.#.#.# +###.###.#.#####.#v#.###.#.#.###.#.###.#.#.#.#.#.#.#.#.#.###########v#####.#.###.#.#########.#.#.#.#####.#.#######.###.#.#.#.###.#.###.#.#.#.# +#...#...#.#...#.#.#.....#...#...#...#.#.#.#.#.#.#.#.#.#.#.........#.#.....#.#...#...#.......#.#.#.#.....#.......#.....#.#.#...#.#.#...#.#.#.# +#.###.###.#.#.#.#.###########.#####.#.#.#.#.#.#.#.#.#.#.#.#######.#.#.#####.#.#####.#.#######.#.#.#.###########.#######.#.###.#.#.#.###.#.#.# +#.#...###...#...#.....###...#...#...#...#.#.#.#.#...#...#.......#...#...#...#.#.>.>.#.....#...#.#.#.###...#...#.......#...###.#.#.#.#...#.#.# +#.#.#################.###.#.###.#.#######.#.#.#.###############.#######.#.###.#.#v#######.#.###.#.#.###.#.#.#.#######.#######.#.#.#.#.###.#.# +#.#...###.............#...#.....#.......#...#.#...#.......#...#.....###.#.#...#.#...#.....#.#...#.#...#.#.#.#.#.......#...###...#.#.#.....#.# +#.###.###.#############.###############.#####.###.#.#####.#.#.#####.###.#.#.###.###.#.#####.#.###.###.#.#.#.#.#.#######.#.#######.#.#######.# +#.#...#...#.........###.......#.>.>.....#...#.#...#.....#.#.#.....#...#.#.#.#...#...#...###.#...#.#...#.#.#.#.#.........#.....#...#.#.......# +#.#.###.###.#######.#########.#.#v#######.#.#.#.#######.#.#.#####.###.#.#.#.#.###.#####.###.###.#.#.###.#.#.#.###############.#.###.#.####### +#.#...#.#...#.....#.......###.#.#.#...###.#.#...#.......#.#.....#.#...#.#.#.#.#...#...#...#...#.#.#.#...#...#.#...............#.....#.......# +#.###.#.#.###.###.#######.###.#.#.#.#.###.#.#####.#######.#####.#.#.###.#.#.#.#.###.#.###.###.#.#.#.#.#######.#.###########################.# +#.#...#.#...#...#.........#...#.#.#.#.....#.....#.#.....#.......#...###...#...#.....#...#...#.#.#.#.#...#.....#.............###.............# +#.#.###.###.###.###########.###.#.#.###########.#.#.###.###############################.###.#.#.#.#.###.#.#################.###.############# +#...###.....###...........#.#...#.#.#...........#...###...........#...###...#...#...#...#...#.#.#.#.#...#.#...>.>.#.........#...#...#.......# +#########################.#.#.###.#.#.###########################.#.#.###.#.#.#.#.#.#.###.###.#.#.#.#.###.#.###v#.#.#########.###.#.#.#####.# +#...#.......#...........#.#.#...#...#.........#...#.............#...#...#.#...#...#...###.....#...#.#.#...#.###.#.#.......###...#.#.#.#.....# +#.#.#.#####.#.#########.#.#.###.#############.#.#.#.###########.#######.#.#########################.#.#.###.###.#.#######.#####.#.#.#.#.##### +#.#.#.....#.#.........#...#.....#...#.........#.#.#.#...#...###.........#...#...#...#...........#...#.#...#.#...#.........#...#...#...#.....# +#.#.#####.#.#########.###########.#.#.#########.#.#.#.#.#.#.###############.#.#.#.#.#.#########.#.###.###.#.#.#############.#.#############.# +#.#.#.....#.#.........#...###.....#.#...........#.#...#...#.............###...#...#...#.....#...#.....###...#...#...#.....#.#...###...#.....# +#.#.#.#####.#.#########.#.###.#####.#############.#####################.###############.###.#.#################.#.#.#.###.#.###.###.#.#.##### +#.#.#.....#.#.......###.#...#.....#.#.........#...#...#.................#...###.........###...#...#...#...#.....#.#.#...#.#...#.###.#.#...### +#.#.#####.#.#######v###.###.#####.#.#.#######.#.###.#.#.#################.#.###.###############.#.#.#.#.#.#.#####.#.###.#.###.#.###.#.###v### +#.#...#...#.......#.>.#.#...#.....#.#.......#...###.#.#...........#.....#.#...#.........#...#...#...#.#.#.#.....#.#.....#.#...#.#...#.#.>.### +#.###.#.#########.#v#.#.#.###.#####.#######.#######.#.###########.#.###.#.###.#########.#.#.#.#######.#.#.#####.#.#######.#.###.#.###.#.#v### +#.#...#.........#.#.#.#.#...#.....#.#...#...#.....#.#.....#...#...#.#...#...#.#...#.....#.#.#.#.......#.#.###...#.......#.#...#.#...#.#.#...# +#.#.###########.#.#.#.#.###.#####.#.#.#.#v###.###.#.#####.#.#.#.###.#.#####.#.#.#.#.#####.#.#.#.#######.#.###v#########.#.###.#.###.#.#.###.# +#.#.........###.#.#.#.#.#...#...#.#...#.>.>.#.#...#.....#.#.#...###.#.#...#.#.#.#.#.....#.#.#.#...#...#.#...>.>.#.....#.#.#...#.....#...#...# +#.#########.###.#.#.#.#.#.###.#.#.#######v#.#.#.#######.#.#v#######.#.#.#.#.#.#.#.#####.#.#.#.###.#.#.#.#####v#.#.###.#.#.#.#############.### +#.........#.#...#.#.#...#.#...#.#.....#...#.#.#...#.....#.>.>.....#.#.#.#.#.#...#...#...#.#...#...#.#.#.#.....#.#.###.#.#.#...#.........#...# +#########.#.#.###.#.#####.#.###.#####.#.###.#.###.#.#######v#####.#.#.#.#.#.#######.#.###.#####.###.#.#.#.#####.#.###.#.#.###.#.#######.###.# +#.........#...###...###...#.###.#.....#...#.#...#...###...#.#.....#.#.#.#.#...#.....#...#.....#.....#...#.....#.#...#...#.#...#...#...#.....# +#.#####################.###.###.#.#######.#.###.#######.#.#.#.#####.#.#.#.###.#.#######v#####.###############.#.###.#####.#.#####.#.#.####### +#.....................#...#...#.#.#.......#.....#.......#...#.#...#.#.#.#.#...#.......>.>.#...#####.....###...#...#.....#...#####...#.......# +#####################.###.###.#.#.#.#############.###########.#.#.#.#.#.#.#.###########v#.#.#######.###.###.#####.#####.###################.# +#...#...........#...#.#...#...#...#.......###...#...#.......#.#.#.#.#...#.#.###.........#...###.....#...#...#.....#.....#.....###...#.......# +#.#.#.#########.#.#.#.#.###.#############.###.#.###.#.#####.#.#.#.#.#####.#.###.###############.#####.###.###.#####.#####.###.###.#.#.####### +#.#...#.......#.#.#.#.#...#.#...#...#...#.....#...#...#.....#...#...###...#.#...#.......###...#.....#.....###.....#.#...#...#.....#...#...### +#.#####.#####.#.#.#.#.###.#.#.#.#.#.#.#.#########.#####.###############.###.#.###.#####.###.#.#####.#############.#.#.#.###.###########.#.### +#.#...#.#.....#...#...###.#.#.#...#...#.#.........#.....#.........#.....#...#.....#...#...#.#.#.....#...###...###...#.#...#.............#...# +#.#.#.#.#.###############.#.#.#########.#.#########.#####.#######.#.#####.#########.#.###.#.#.#.#####.#.###.#.#######.###.#################.# +#.#.#...#...###...#...###...#.........#.#.....#####.......#.....#.#.#.....#...###...#...#.#.#.#.......#.....#.#...#...#...#...###...#.......# +#.#.#######.###.#.#.#.###############.#.#####.#############.###.#.#.#.#####.#.###.#####.#.#.#.###############.#.#.#.###.###.#.###.#.#.####### +#...###...#.....#...#...#.............#.....#...#...........###...#.#.#.....#.....#...#.#.#.#.................#.#.#.#...#...#.#...#...#.....# +#######.#.#############.#.#################.###.#.#################.#.#.###########.#.#.#.#.###################.#.#.#.###.###.#.#######.###.# +#.......#.......#.......#.........#.......#.....#.................#...#.#...#.....#.#.#...#.........#.........#.#...#...#...#.#.......#.#...# +#.#############.#.###############.#.#####.#######################.#####.#.#.#.###.#.#.#############v#.#######.#.#######.###.#.#######.#.#.### +#...#...#...###...#...#...#...###...#...#.......#.................#.....#.#...###...#.........#...>.>.#.....#.#.#.......#...#.....###...#...# +###.#.#.#.#.#######.#.#.#.#.#.#######.#.#######.#.#################.#####.###################.#.###v###.###.#.#.#.#######.#######.#########.# +#...#.#.#.#.....###.#.#.#.#.#.###...#.#.........#.............#...#.......###...#...#.........#...#.###.###...#.#.....###.......#.#.........# +#.###.#.#.#####.###.#.#.#.#.#.###.#.#.#######################.#.#.###########.#.#.#.#.###########.#.###.#######.#####.#########.#.#.######### +#...#.#...#.....#...#.#.#.#.#...#.#.#.............#...........#.#...#...#.....#...#...#...........#...#...###...#.....#...#.....#.#.........# +###.#.#####v#####.###.#.#.#.###.#.#.#############.#.###########.###.#.#.#.#############.#############.###.###.###.#####.#.#.#####.#########.# +###...#...#.>.###...#.#.#.#...#.#.#...#...........#.......#...#.#...#.#.#.............#.......#...###...#...#.#...#...#.#.#...#...#...###...# +#######.#.#v#.#####.#.#.#.###.#.#.###.#.#################.#.#.#.#.###.#.#############.#######.#.#.#####.###.#.#.###.#.#.#.###.#.###.#.###v### +#.......#...#...###.#.#.#.###.#.#...#.#...###...###...#...#.#...#.#...#.#...#...#.....#...###...#...#...#...#.#...#.#.#.#.#...#.#...#.#.>.### +#.#############.###.#.#.#.###.#.###.#.###v###.#.###.#.#v###.#####.#.###.#.#.#.#.#.#####.#.#########.#.###.###.###.#.#.#.#.#.###.#.###.#.#v### +#.......#.....#.#...#.#.#.#...#...#.#...>.>.#.#.#...#.>.>.#.#.....#...#.#.#.#.#.#.#...#.#.#.....#...#.###.....###.#.#.#.#.#...#.#.###...#...# +#######.#.###.#.#.###.#.#.#.#####.#.#####v#.#.#.#.#####v#.#.#.#######.#.#.#.#.#.#v#.#.#.#.#.###.#.###.###########.#.#.#.#.###.#.#.#########.# +#######.#.###.#.#.#...#.#.#...###...###...#.#.#.#.#.....#...#...#...#.#.#.#.#.#.>.>.#.#.#.#.#...#.###.......#####.#.#.#.#...#.#...#...#...#.# +#######.#.###.#.#.#.###.#.###.#########.###.#.#.#.#.###########.#.#.#.#.#.#.#.###v###.#.#.#.#.###.#########.#####.#.#.#.###.#.#####.#.#.#.#.# +#.......#.#...#...#.....#.#...#.........###.#.#...#...........#.#.#.#.#.#.#...#...###...#...#...#.#.......#.....#...#.#.#...#.#.....#...#...# +#.#######.#.#############.#.###.###########.#.###############.#.#.#.#.#.#.#####.###############.#.#.#####.#####.#####.#.#.###.#.############# +#.........#.........#...#.#.#...#...#.....#.#.#...#...........#...#.#.#...#...#.....#...#...#...#.#.....#.#.....#...#.#.#...#.#.............# +###################.#.#.#.#.#.###.#.#.###.#.#.#.#.#.###############.#.#####.#.#####.#.#.#.#.#.###.#####.#.#.#####.#.#.#.###.#.#############.# +#...#...#...#.......#.#.#...#.....#...#...#...#.#.#.....#...#...###.#.#.....#.......#.#...#.#.....#.....#...#.....#.#...#...#...#...........# +#.#.#.#.#.#.#.#######.#.###############.#######.#.#####.#.#.#.#.###.#.#.#############.#####.#######.#########.#####.#####.#####.#.########### +#.#...#...#...#...###.#...#...#...#...#.....#...#.......#.#.#.#...#...#...#...#.....#.#.....#...###.......###.#.....#...#.......#...........# +#.#############.#.###.###.#.#.#.#.#.#.#####.#.###########.#.#.###.#######.#.#.#.###.#.#.#####.#.#########.###.#.#####.#.###################.# +#.#.............#...#...#.#.#.#.#...#.......#.............#...#...#...###...#...#...#.#.#...#.#.#...#.....#...#.....#.#.#...#.........#.....# +#.#.###############.###.#.#.#.#v###############################.###.#.###########.###.#.#.#.#.#.#.#.#.#####.#######.#.#.#.#.#.#######.#.##### +#...#...............###.#.#.#.>.>.#.......#.....................#...#...#...#...#...#.#.#.#.#.#.#.#.#.#####...#.....#.#.#.#.#.......#.#.....# +#####.#################.#.#.###v#.#.#####.#.#####################.#####.#.#.#.#.###.#.#.#.#.#.#.#.#.#v#######.#.#####.#.#.#.#######.#.#####.# +#...#.........#...#...#.#.#.###.#...#.....#.#.....#.......#.....#...#...#.#.#.#.#...#.#.#.#.#.#...#.>.>.#...#.#.#...#.#.#.#...#...#.#.#...#.# +#.#.#########v#.#.#.#.#.#.#.###.#####.#####.#.###.#.#####.#.###.###.#.###.#.#.#.#v###.#.#.#.#.#######v#.#.#.#.#.#.#.#.#.#.###.#.#.#.#.#.#.#.# +#.#.......###.>.#.#.#...#.#.#...#...#...###...#...#.#.....#...#.#...#...#.#.#.#.>.>.#.#.#.#.#...#.....#.#.#.#.#.#.#.#.#.#...#.#.#.#.#.#.#...# +#.#######.###v###.#.#####.#.#.###.#.###.#######.###.#.#######.#.#.#####.#.#.#.###v#.#.#.#.#.###.#.#####.#.#.#.#.#.#.#.#.###.#.#.#.#.#.#v##### +#.......#.....###.#.....#...#.#...#.....#...###.....#.....###.#.#.#...#.#.#.#.#...#...#...#.....#.....#.#.#.#.#.#.#.#.#...#.#.#.#.#.#.>.#...# +#######.#########.#####.#####.#.#########.#.#############.###.#.#.#.#.#.#.#.#.#.#####################.#.#.#.#.#.#.#.#.###.#.#.#.#.#.###v#.#.# +#.....#.........#.#...#.#...#.#.....#...#.#...#...#...#...#...#.#...#.#.#.#.#.#.#...###.....#.....#...#...#.#.#.#.#.#...#.#.#.#.#...###...#.# +#.###.#########.#.#.#.#.#.#.#.#####.#.#.#.###.#.#.#.#.#v###.###.#####.#.#.#.#.#.#.#.###.###.#.###.#.#######.#.#.#.#.###.#.#.#.#.###########.# +#...#.#.........#...#...#.#...#...#.#.#.#.#...#.#.#.#.>.>...###.......#...#.#.#.#.#...#.#...#...#.#.......#.#.#.#.#.#...#.#.#...#...........# +###.#.#.#################.#####.#.#.#.#.#.#.###.#.#.###v###################.#.#.#.###.#.#.#####.#.#######.#.#.#.#.#.#.###.#.#####.########### +#...#...#.......#...#.....#.....#.#.#.#...#...#.#.#.###...#...........#...#...#...#...#.#.......#.#.......#...#...#.#.###.#.....#...........# +#.#######.#####.#.#.#.#####.#####.#.#.#######.#.#.#.#####.#.#########.#.#.#########.###.#########.#.###############.#.###.#####.###########.# +#...#.....#.....#.#.#.......#.....#...###...#...#...#.....#.#.........#.#.#.....###.....#...#.....#.....#.....#.....#.#...#.....#...#.....#.# +###.#.#####.#####.#.#########.###########.#.#########.#####.#.#########.#.#.###.#########.#.#.#########.#.###.#.#####.#.###.#####.#.#.###.#.# +#...#.#.....#...#.#.#.........#...###.....#.....#...#.......#...........#.#...#.#.........#...#...###...#.#...#.....#.#.#...#...#.#.#...#.#.# +#.###.#.#####.#.#.#.#.#########.#.###.#########.#.#.#####################.###.#.#.#############.#.###.###.#.#######.#.#.#.###.#.#.#.###.#.#.# +#.....#.....#.#.#.#.#...........#...#.......#...#.#.#...#...#.......#.....#...#.#.......#.....#.#.#...#...#.....#...#.#.#.#...#...#.....#.#.# +###########.#.#.#.#.###############.#######.#.###.#.#.#.#.#.#.#####.#.#####.###.#######.#.###.#.#.#.###.#######.#.###.#.#.#.#############.#.# +#.........#...#...#.....#.......#...#...#...#...#.#.#.#.#.#.#.....#.#.#...#...#.#.....#...#...#.#.#.....#...#...#...#.#...#.............#.#.# +#.#######.#############.#.#####.#.###.#.#.#####.#.#.#.#.#.#.#####.#.#.#.#.###.#.#.###.#####.###.#.#######.#.#.#####.#.#################.#.#.# +#.......#...............#.....#...###.#.#...#...#.#.#.#.#.#.###...#...#.#.#...#...#...#.....#...#.........#.#.....#.#...#.........#.....#...# +#######.#####################v#######.#.###.#.###.#.#.#.#.#.###v#######.#.#.#######.###.#####.#############.#####.#.###.#.#######.#.######### +#.......#.....#...#...#.....>.>.#.....#.....#...#.#.#.#...#.#.>.>.#...#.#.#...#.....###.#...#.............#.#...#.#.....#.......#.#...#...### +#.#######.###.#.#.#.#.#.#####v#.#.#############.#.#.#.#####.#.#v#.#.#.#.#.###.#.#######v#.#.#############.#.#.#.#.#############.#.###.#.#.### +#.........#...#.#.#.#.#.....#.#...#...#...#.....#.#.#.....#.#.#.#...#.#.#.#...#.#...#.>.>.#...###...#.....#...#...#...#...#...#.#.....#.#.### +###########.###.#.#.#.#####.#.#####.#.#.#.#.#####.#.#####.#.#.#.#####.#.#.#.###.#.#.#.#v#####.###.#.#.#############.#.#.#.#.#.#.#######.#.### +#...........#...#.#.#.###...#.#...#.#.#.#.#.....#.#.....#.#...#...###.#.#...###...#.#.#.###...#...#...###...###...#.#.#.#.#.#.#.........#...# +#.###########.###.#.#.###.###.#.#.#.#.#.#.#####.#.#####.#.#######.###.#.###########.#.#.###.###.#########.#.###.#.#.#.#.#.#.#.#############.# +#...........#...#.#.#...#.#...#.#.#.#...#.....#.#.#.....#.#.......#...#.....###...#...#...#.###.......#...#...#.#...#.#.#.#.#.#.......#...#.# +###########.###.#.#.###.#.#.###.#.#.#########.#.#.#.#####.#.#######.#######.###.#.#######.#.#########.#.#####.#.#####.#.#.#.#.#.#####.#.#.#.# +#.......###...#.#...#...#.#...#.#...#.........#...#.#...#.#.....###...#...#.#...#.###.....#.#...#...#.#.#.....#...#...#.#.#.#.#.....#.#.#...# +#.#####.#####.#.#####.###.###.#.#####.#############.#.#.#.#####.#####.#.#.#.#.###.###.#####.#.#.#.#.#v#.#.#######.#.###.#.#.#.#####v#.#.##### +#.....#...#...#.....#...#.###...#...#...........###...#.#.#...#.....#...#...#...#...#.....#.#.#.#.#.>.>.#.....#...#...#.#.#.#.#...>.#...#...# +#####.###.#v#######.###.#.#######.#.###########.#######.#.#.#.#####.###########.###.#####.#.#.#.#.###v#######.#.#####.#.#.#.#.#.###v#####.#.# +#####.#...#.>...#...###.#.....#...#.###.........#...###...#.#.......###.....###...#.......#...#.#.###.......#.#.....#.#.#.#.#.#...#.......#.# +#####.#.###v###.#.#####.#####.#.###.###.#########.#.#######.###########.###.#####.#############.#.#########.#.#####.#.#.#.#.#.###.#########.# +#.....#.....###...#...#.......#...#.#...#...#.....#...#...#.#...#...#...#...#.....#.......#...#.#.#.........#.#.....#.#.#.#.#.#...#.........# +#.#################.#.###########.#.#.###.#.#.#######.#.#.#.#.#.#.#.#.###.###.#####.#####.#.#.#.#.#.#########.#.#####.#.#.#.#.#.###.######### +#.........#.........#...#.....#...#.#.....#...#.......#.#.#...#...#...#...###.#...#.#.....#.#.#...#.........#.#...#...#.#...#...###...#...### +#########.#.###########.#.###.#.###.###########.#######.#.#############.#####.#.#.#.#.#####.#.#############.#.###.#.###.#############.#.#.### +#.........#.#...........#.#...#...#...........#...#...#.#.###...........#...#...#...#.......#...#...........#.#...#...#.###...#...#...#.#...# +#.#########.#.###########.#.#####.###########.###.#.#.#.#.###.###########.#.###################.#.###########.#.#####.#.###.#.#.#.#.###.###.# +#.#.....#...#.#...........#...#...#...#.....#.....#.#.#.#...#...........#.#.###.......#...#.....#...........#...#...#...#...#...#.#.....#...# +#.#.###.#.###.#.#############.#.###.#.#.###.#######.#.#.###.###########.#.#.###.#####.#.#.#.###############.#####.#.#####.#######.#######.### +#...#...#.###...#...#...#.....#.....#.#.#...#...###.#.#.#...###.........#.#...#.....#...#...#####...###.....###...#.#...#.......#.....#...### +#####.###.#######.#.#.#.#.###########.#.#.###.#.###.#.#.#.#####v#########.###.#####.#############.#.###.#######.###.#.#.#######.#####.#.##### +#...#...#...#.....#...#...#.......###...#.....#.#...#.#.#...#.>.>.#.....#.#...#...#.....###...#...#.....#...###.#...#.#.#.....#.....#...#...# +#.#.###.###.#.#############.#####.#############.#.###.#.###.#.###.#.###.#.#.###.#.#####.###.#.#.#########.#.###.#.###.#.#.###.#####.#####.#.# +#.#.....#...#...#...###...#.#.....#...#.........#...#.#...#.#.###.#.#...#.#.#...#.#...#.....#.#.........#.#.###.#.###.#.#.#...#...#...#...#.# +#.#######.#####.#.#.###.#.#.#.#####.#.#.###########.#.###.#.#.###.#.#.###.#.#.###.#.#.#######.#########v#.#.###.#.###.#.#.#.###v#.###.#.###.# +#...#.....#...#...#...#.#.#.#.#...#.#.#.......###...#.#...#.#.#...#.#...#.#.#...#.#.#.#.......#...#...>.>.#...#.#...#.#.#.#.#.>.#.....#...#.# +###.#.#####.#.#######.#.#.#.#.#.#.#.#.#######.###.###.#.###.#.#.###.###.#.#.###.#.#.#.#v#######.#.#.#########.#.###.#.#.#.#.#.#v#########.#.# +#...#.#.....#...#...#.#.#.#.#.#.#.#.#.#####...#...###.#.###.#.#...#.#...#.#.....#.#.#.>.>.#...#.#.#.#...#...#.#.###.#.#.#.#...#...#...#...#.# +#.###.#.#######.#.#.#.#.#.#.#.#.#.#.#.#####v###.#####.#.###.#.###.#.#.###.#######.#.#####.#.#.#.#.#.#.#.#.#.#.#.###.#.#.#.#######.#.#.#.###.# +#...#.#.#.....#...#...#.#.#.#.#.#.#.#...#.>.>.#...#...#...#.#.#...#.#...#.###.....#.....#.#.#.#.#.#...#...#.#.#...#...#.#.#.......#.#.#...#.# +###.#.#.#.###.#########.#.#.#.#.#.#.###.#.###.###.#.#####.#.#.#.###.###.#.###.#########.#.#.#.#.#.#########.#.###.#####.#.#.#######.#.###.#.# +###.#.#.#.###.......#...#.#.#...#.#.#...#.###.#...#.....#.#...#.....###.#...#.#...#.....#.#.#.#.#...#.....#.#.#...#.....#.#.....#...#.#...#.# +###.#.#.#.#########.#.###.#.#####.#.#.###.###.#.#######.#.#############.###.#.#.#.#.#####.#.#.#.###.#.###.#.#.#.###.#####.#####.#.###.#.###.# +#...#.#.#.#.........#.#...#.....#.#.#...#.###.#.#.......#.....#.........#...#.#.#.#.....#.#.#.#.#...#...#.#.#.#...#...#...#.....#.#...#.#...# +#.###.#.#.#.#########.#.#######.#.#.###.#.###.#.#.###########.#.#########.###.#.#.#####.#.#.#.#.#.#####.#.#.#.###.###.#.###.#####.#.###.#.### +#.....#...#...........#.........#...###...###...#.............#...........###...#.......#...#...#.......#...#.....###...###.......#.....#...# +###########################################################################################################################################.# diff --git a/src/main.rs b/src/main.rs index 4f96f40..92e2f71 100644 --- a/src/main.rs +++ b/src/main.rs @@ -25,74 +25,75 @@ extern crate test; pub mod util; pub use util::prelude::*; -#[derive(Copy, Clone)] -struct Piece { - a: [u16; 3], - b: [u16; 3], +pub fn iterg<I: Iterator<Item = (u8, u8, u16)>>( + start: (u8, u8, u16, HashSet<(u8, u8)>), + graph: &mut impl Fn((u8, u8, u16)) -> I, + end: &mut impl Fn((u8, u8)) -> bool, + finally: &mut impl FnMut(u16), + i: &[&[u8]], +) { + if end((start.0, start.1)) { + finally(start.2); + } else { + graph((start.0, start.1, start.2)) + .map(|(a, b, n)| { + let mut m = start.3.clone(); + if m.insert((a, b)) { + iterg((a, b, n, m), graph, end, finally, i) + } else { + // if n > 60 { + // for (line, y) in i.iter().ι::<u8>() { + // for (&elem, x) in line.iter().ι::<u8>() { + // if m.contains(&(x, y)) { + // print!("O"); + // } else { + // print!("{}", elem as char); + // } + // } + // println!(); + // } + // } + } + }) + .Θ(); + }; } + pub fn run(i: &str) -> impl Display { - let mut pieces = vec![]; - let mut i = i.as_bytes(); - while i.len() > 0 { - pieces.push(Piece { - a: 読む::迄::<u16>(&mut i, b',') - .and(読む::迄(&mut i, b',')) - .and(読む::迄(&mut i, b'~')), - b: 読む::迄::<u16>(&mut i, b',') - .and(読む::迄(&mut i, b',')) - .and(読む::迄または完了(&mut i, b'\n')), - }); - } - pieces.sort_unstable_by(|a, b| a.a[2].cmp(&b.a[2])); - let mut m: HashMap<(u16, u16), u16> = HashMap::default(); - for p in pieces.iter_mut() { - let a = (p.a[0]..=p.b[0]).flat_map(|x| (p.a[1]..=p.b[1]).map(move |y| (x, y))); - let k = a.clone().map(|x| *m.get(&x).unwrap_or(&0)).max().unwrap() + 1; - for e in a { - m.insert(e, k + p.b[2] - p.a[2]); - } - *p = Piece { - a: p.a.trunc().and(k), - b: p.b.trunc().and(k + p.b[2] - p.a[2]), - }; - } - // (0..pieces.len()) - // .filter_map(|i| { - // let mut m = HashMap::new(); - // for (p, j) in pieces.iter().ι::<usize>() { - // if j == i { - // continue; - // } - // let a = (p.a[0]..=p.b[0]).flat_map(|x| (p.a[1]..=p.b[1]).map(move |y| (x, y))); - // let k = a.clone().map(|x| *m.get(&x).unwrap_or(&0)).max().unwrap() + 1; - // for e in a { - // m.insert(e, k + p.b[2] - p.a[2]); - // } - // if k < p.a[2] { - // return None; - // } - // } - // return Some(1); - // }) - // .sum::<u64>() - (0..pieces.len()) - .map(|i| { - let mut m = HashMap::new(); - let mut n = 0; - for (p, j) in pieces.iter().ι::<usize>() { - if j == i { - continue; - } - let a = (p.a[0]..=p.b[0]).flat_map(|x| (p.a[1]..=p.b[1]).map(move |y| (x, y))); - let k = a.clone().map(|x| *m.get(&x).unwrap_or(&0)).max().unwrap() + 1; - for e in a { - m.insert(e, k + p.b[2] - p.a[2]); - } - n += (k < p.a[2]) as u16; - } - n as u64 - }) - .sum::<u64>() + let x = i.行().collect_vec(); + let i = x.as_slice(); + let end = (x.len() as u8 - 2, x.len() as u8 - 1); + let mut sum = 0; + iterg( + (1u8, 0u8, 0u16, HashSet::from_iter([(1, 0)])), + &mut |(x, y, n)| { + let v = match i[y.nat()][x.nat()] { + b'>' => vec![(x + 1, y, n + 1)], + b'<' => vec![(x - 1, y, n + 1)], + b'^' => vec![(x, y - 1, n + 1)], + b'v' => vec![(x, y + 1, n + 1)], + _ => [ + Dir::N + (x, y), + Dir::E + (x, y), + Dir::S + (x, y), + Dir::W + (x, y), + ] + .into_iter() + .flatten() + .fl(lt(i.len() as u8)) + .fr(lt(i.len() as u8)) + .filter(|(x, y)| i[y.nat()][x.nat()] != b'#') + .map(|(x, y)| (x, y, n + 1)) + .collect_vec(), + }; + + v.into_iter() + }, + &mut |(x, y)| (x, y) == end, + &mut |x| sum = sum.max(x), + i, + ); + sum } fn main() { |