diff options
| author | Orfeas <38209077+0xfea5@users.noreply.github.com> | 2025-08-27 14:42:06 +0300 |
|---|---|---|
| committer | Orfeas <38209077+0xfea5@users.noreply.github.com> | 2025-09-01 04:51:37 +0300 |
| commit | 0d7d45995a34e3bfaefa7bb90eb4c1314acd027e (patch) | |
| tree | 50d1eac6171855385f63a391dc0fd2e3113375c0 | |
| parent | day01/: rewrite solution to be in line with the template (diff) | |
| download | aoc24-0d7d45995a34e3bfaefa7bb90eb4c1314acd027e.tar.gz aoc24-0d7d45995a34e3bfaefa7bb90eb4c1314acd027e.zip | |
day02: done
| -rw-r--r-- | day02/Makefile | 1 | ||||
| -rw-r--r-- | day02/input.txt | 1000 | ||||
| -rw-r--r-- | day02/solution.cpp | 81 | ||||
| -rw-r--r-- | day02/tests/test1.input | 6 | ||||
| -rw-r--r-- | day02/tests/test1.output | 2 |
5 files changed, 1090 insertions, 0 deletions
diff --git a/day02/Makefile b/day02/Makefile new file mode 100644 index 0000000..2fa98c0 --- /dev/null +++ b/day02/Makefile | |||
| @@ -0,0 +1 @@ | |||
| include ../aoc.mk | |||
diff --git a/day02/input.txt b/day02/input.txt new file mode 100644 index 0000000..1d08619 --- /dev/null +++ b/day02/input.txt | |||
| @@ -0,0 +1,1000 @@ | |||
| 1 | 71 73 74 76 78 80 77 | ||
| 2 | 78 81 84 87 87 | ||
| 3 | 37 40 43 46 50 | ||
| 4 | 12 13 15 17 18 19 21 27 | ||
| 5 | 4 5 2 4 5 6 | ||
| 6 | 53 54 56 58 59 56 54 | ||
| 7 | 26 29 31 34 35 33 35 35 | ||
| 8 | 60 62 61 63 64 68 | ||
| 9 | 89 90 91 94 93 98 | ||
| 10 | 42 43 45 45 47 | ||
| 11 | 81 84 86 87 90 90 91 90 | ||
| 12 | 53 56 56 58 58 | ||
| 13 | 30 33 35 36 36 40 | ||
| 14 | 1 3 4 7 10 12 12 17 | ||
| 15 | 56 58 60 61 65 67 | ||
| 16 | 1 3 4 8 10 12 10 | ||
| 17 | 36 38 40 44 47 47 | ||
| 18 | 21 22 23 27 28 29 31 35 | ||
| 19 | 32 34 37 40 44 45 48 54 | ||
| 20 | 55 58 59 66 67 70 73 | ||
| 21 | 30 33 39 40 42 39 | ||
| 22 | 70 73 76 81 81 | ||
| 23 | 4 5 11 12 13 17 | ||
| 24 | 77 79 82 87 88 95 | ||
| 25 | 55 52 53 54 56 57 | ||
| 26 | 79 76 78 79 76 | ||
| 27 | 16 15 17 19 20 20 | ||
| 28 | 71 70 73 74 76 80 | ||
| 29 | 81 79 82 85 87 89 96 | ||
| 30 | 26 23 26 23 25 28 30 | ||
| 31 | 74 72 75 77 79 76 77 74 | ||
| 32 | 56 53 56 59 62 63 62 62 | ||
| 33 | 42 41 40 41 45 | ||
| 34 | 40 39 40 38 41 43 44 49 | ||
| 35 | 20 17 18 18 20 22 25 | ||
| 36 | 9 8 8 11 10 | ||
| 37 | 85 84 84 87 89 90 93 93 | ||
| 38 | 89 88 89 89 93 | ||
| 39 | 35 34 37 40 43 43 49 | ||
| 40 | 62 61 64 66 68 70 74 76 | ||
| 41 | 53 50 53 54 55 59 60 57 | ||
| 42 | 24 21 23 27 29 31 31 | ||
| 43 | 55 53 56 59 63 66 70 | ||
| 44 | 12 11 13 17 22 | ||
| 45 | 78 77 82 85 87 | ||
| 46 | 72 71 74 77 84 83 | ||
| 47 | 72 69 72 78 81 82 82 | ||
| 48 | 13 12 15 17 22 23 27 | ||
| 49 | 82 79 85 88 93 | ||
| 50 | 76 76 78 80 82 83 85 | ||
| 51 | 91 91 93 95 93 | ||
| 52 | 24 24 27 30 30 | ||
| 53 | 20 20 23 26 27 30 31 35 | ||
| 54 | 65 65 66 67 73 | ||
| 55 | 67 67 65 68 71 | ||
| 56 | 4 4 1 3 4 7 8 6 | ||
| 57 | 26 26 24 27 27 | ||
| 58 | 4 4 7 8 7 8 9 13 | ||
| 59 | 39 39 40 41 38 41 46 | ||
| 60 | 37 37 39 39 40 43 | ||
| 61 | 74 74 77 77 80 81 83 80 | ||
| 62 | 67 67 67 70 71 73 73 | ||
| 63 | 83 83 86 87 87 90 94 | ||
| 64 | 85 85 88 90 91 92 92 98 | ||
| 65 | 28 28 30 34 37 40 43 | ||
| 66 | 50 50 53 57 54 | ||
| 67 | 31 31 34 36 37 39 43 43 | ||
| 68 | 50 50 52 54 58 59 62 66 | ||
| 69 | 44 44 47 49 53 58 | ||
| 70 | 57 57 59 62 63 64 69 72 | ||
| 71 | 73 73 76 82 85 86 83 | ||
| 72 | 46 46 49 56 58 58 | ||
| 73 | 35 35 36 42 46 | ||
| 74 | 8 8 14 15 18 19 25 | ||
| 75 | 31 35 36 38 40 41 42 | ||
| 76 | 5 9 12 14 11 | ||
| 77 | 39 43 46 48 49 52 54 54 | ||
| 78 | 14 18 19 21 24 28 | ||
| 79 | 11 15 17 18 23 | ||
| 80 | 58 62 63 60 62 | ||
| 81 | 78 82 80 81 82 85 88 85 | ||
| 82 | 77 81 84 85 83 84 84 | ||
| 83 | 40 44 41 44 45 46 49 53 | ||
| 84 | 40 44 46 43 44 51 | ||
| 85 | 4 8 10 10 11 13 15 18 | ||
| 86 | 5 9 11 11 12 15 16 13 | ||
| 87 | 16 20 23 23 25 25 | ||
| 88 | 68 72 75 75 78 82 | ||
| 89 | 61 65 65 67 70 77 | ||
| 90 | 73 77 81 84 85 87 | ||
| 91 | 15 19 21 22 26 27 28 26 | ||
| 92 | 16 20 22 26 29 31 31 | ||
| 93 | 76 80 84 86 89 93 | ||
| 94 | 43 47 49 50 54 61 | ||
| 95 | 60 64 66 73 74 76 79 81 | ||
| 96 | 79 83 85 87 90 92 98 95 | ||
| 97 | 33 37 39 40 45 45 | ||
| 98 | 37 41 47 50 51 53 57 | ||
| 99 | 50 54 59 62 65 72 | ||
| 100 | 25 30 32 33 34 37 | ||
| 101 | 64 71 73 75 78 77 | ||
| 102 | 70 76 77 79 82 83 84 84 | ||
| 103 | 25 31 32 34 37 39 42 46 | ||
| 104 | 14 19 21 22 23 24 27 34 | ||
| 105 | 58 64 63 64 67 68 69 | ||
| 106 | 86 93 95 96 94 92 | ||
| 107 | 15 20 19 21 21 | ||
| 108 | 34 40 39 41 42 43 47 | ||
| 109 | 48 54 56 54 57 62 | ||
| 110 | 43 50 52 53 53 54 55 | ||
| 111 | 9 16 19 19 17 | ||
| 112 | 25 30 31 31 32 32 | ||
| 113 | 72 77 78 78 80 82 83 87 | ||
| 114 | 53 60 61 64 64 65 72 | ||
| 115 | 76 82 84 88 89 91 92 93 | ||
| 116 | 55 60 63 67 65 | ||
| 117 | 43 50 52 55 58 62 64 64 | ||
| 118 | 70 77 81 83 87 | ||
| 119 | 16 21 23 27 29 32 38 | ||
| 120 | 74 80 81 83 86 91 92 | ||
| 121 | 40 47 50 51 57 54 | ||
| 122 | 33 39 46 49 51 51 | ||
| 123 | 53 60 66 67 70 73 74 78 | ||
| 124 | 53 59 60 61 67 74 | ||
| 125 | 66 63 60 58 56 57 | ||
| 126 | 88 85 84 83 83 | ||
| 127 | 57 54 51 50 49 45 | ||
| 128 | 26 23 20 19 16 11 | ||
| 129 | 78 75 74 75 73 | ||
| 130 | 48 47 49 46 44 47 | ||
| 131 | 17 15 16 14 11 11 | ||
| 132 | 56 54 55 53 49 | ||
| 133 | 55 54 52 55 49 | ||
| 134 | 80 79 79 77 76 | ||
| 135 | 21 20 17 14 12 12 15 | ||
| 136 | 41 39 38 38 38 | ||
| 137 | 51 49 47 44 44 40 | ||
| 138 | 30 27 27 26 25 18 | ||
| 139 | 37 35 31 28 25 | ||
| 140 | 83 80 76 73 72 71 70 72 | ||
| 141 | 90 87 84 81 79 75 75 | ||
| 142 | 48 47 46 42 40 39 35 | ||
| 143 | 31 29 25 24 21 16 | ||
| 144 | 58 56 49 46 44 43 42 | ||
| 145 | 43 41 39 32 29 30 | ||
| 146 | 17 16 13 6 5 5 | ||
| 147 | 47 46 43 40 37 32 31 27 | ||
| 148 | 86 83 80 79 73 68 | ||
| 149 | 84 85 82 79 78 | ||
| 150 | 28 29 26 25 22 24 | ||
| 151 | 51 52 50 47 44 44 | ||
| 152 | 59 61 58 56 54 50 | ||
| 153 | 21 22 20 18 11 | ||
| 154 | 61 62 60 61 59 57 56 55 | ||
| 155 | 94 97 98 96 93 96 | ||
| 156 | 77 80 77 74 71 68 71 71 | ||
| 157 | 88 91 89 90 86 | ||
| 158 | 24 27 25 24 21 19 20 14 | ||
| 159 | 59 60 60 59 56 | ||
| 160 | 80 82 82 81 79 76 73 75 | ||
| 161 | 23 25 25 23 23 | ||
| 162 | 24 25 23 23 19 | ||
| 163 | 96 97 95 94 94 87 | ||
| 164 | 60 61 59 55 53 50 | ||
| 165 | 88 89 85 83 85 | ||
| 166 | 71 72 69 68 66 63 59 59 | ||
| 167 | 92 95 91 88 84 | ||
| 168 | 96 98 95 91 89 82 | ||
| 169 | 35 37 36 33 30 24 23 22 | ||
| 170 | 52 54 47 45 43 46 | ||
| 171 | 82 85 80 79 79 | ||
| 172 | 14 16 13 6 5 1 | ||
| 173 | 55 58 53 52 51 50 48 41 | ||
| 174 | 26 26 25 23 20 17 16 14 | ||
| 175 | 95 95 92 91 94 | ||
| 176 | 20 20 18 16 13 10 7 7 | ||
| 177 | 29 29 28 26 22 | ||
| 178 | 21 21 19 18 17 16 15 9 | ||
| 179 | 16 16 13 11 14 11 | ||
| 180 | 82 82 81 80 81 82 | ||
| 181 | 52 52 51 50 52 49 46 46 | ||
| 182 | 42 42 41 43 42 41 37 | ||
| 183 | 42 42 41 43 38 | ||
| 184 | 28 28 27 27 25 24 | ||
| 185 | 10 10 8 8 5 3 6 | ||
| 186 | 68 68 66 66 63 61 61 | ||
| 187 | 32 32 30 30 27 25 21 | ||
| 188 | 98 98 98 96 93 91 84 | ||
| 189 | 42 42 39 35 34 31 | ||
| 190 | 89 89 85 82 80 81 | ||
| 191 | 53 53 50 48 45 44 40 40 | ||
| 192 | 25 25 21 18 15 12 8 | ||
| 193 | 68 68 64 63 57 | ||
| 194 | 95 95 92 86 85 | ||
| 195 | 94 94 93 91 88 81 80 83 | ||
| 196 | 26 26 21 18 15 15 | ||
| 197 | 24 24 22 17 13 | ||
| 198 | 28 28 27 26 23 17 16 10 | ||
| 199 | 43 39 37 34 33 | ||
| 200 | 33 29 27 24 23 21 24 | ||
| 201 | 30 26 24 21 19 19 | ||
| 202 | 74 70 67 66 65 62 58 | ||
| 203 | 57 53 50 48 45 38 | ||
| 204 | 61 57 54 53 52 55 53 | ||
| 205 | 38 34 36 33 32 29 27 29 | ||
| 206 | 89 85 83 85 85 | ||
| 207 | 37 33 34 32 28 | ||
| 208 | 91 87 86 84 83 81 82 77 | ||
| 209 | 90 86 84 84 83 82 80 79 | ||
| 210 | 20 16 14 14 16 | ||
| 211 | 98 94 91 91 89 88 87 87 | ||
| 212 | 71 67 64 62 59 58 58 54 | ||
| 213 | 61 57 57 54 53 47 | ||
| 214 | 34 30 28 24 21 | ||
| 215 | 34 30 26 24 27 | ||
| 216 | 16 12 9 7 3 1 1 | ||
| 217 | 75 71 67 64 62 59 56 52 | ||
| 218 | 95 91 89 85 80 | ||
| 219 | 31 27 24 19 16 | ||
| 220 | 55 51 44 41 43 | ||
| 221 | 51 47 40 38 38 | ||
| 222 | 56 52 47 44 40 | ||
| 223 | 60 56 53 51 50 43 37 | ||
| 224 | 30 23 21 18 15 12 | ||
| 225 | 51 44 41 38 35 36 | ||
| 226 | 80 73 71 68 67 67 | ||
| 227 | 48 41 40 39 38 36 33 29 | ||
| 228 | 69 63 61 60 55 | ||
| 229 | 71 66 67 65 63 | ||
| 230 | 48 42 39 37 34 36 38 | ||
| 231 | 92 85 84 85 83 83 | ||
| 232 | 33 27 24 23 26 24 23 19 | ||
| 233 | 16 11 13 12 5 | ||
| 234 | 98 93 90 90 87 84 | ||
| 235 | 18 12 12 11 9 7 4 6 | ||
| 236 | 10 4 4 3 3 | ||
| 237 | 15 9 9 8 5 1 | ||
| 238 | 94 87 86 86 83 76 | ||
| 239 | 60 54 50 48 47 44 42 40 | ||
| 240 | 54 49 45 43 40 41 | ||
| 241 | 83 78 75 73 69 66 66 | ||
| 242 | 31 24 23 19 16 14 10 | ||
| 243 | 89 84 81 77 74 68 | ||
| 244 | 75 70 69 66 60 57 54 | ||
| 245 | 91 84 79 76 78 | ||
| 246 | 66 59 56 54 49 46 46 | ||
| 247 | 28 23 21 14 10 | ||
| 248 | 88 83 81 74 69 | ||
| 249 | 9 12 14 17 20 21 18 | ||
| 250 | 75 76 79 80 82 83 84 84 | ||
| 251 | 15 16 18 20 22 26 | ||
| 252 | 68 69 72 73 78 | ||
| 253 | 75 76 78 76 78 79 | ||
| 254 | 83 86 88 90 92 94 92 90 | ||
| 255 | 55 56 58 60 58 58 | ||
| 256 | 66 69 68 71 75 | ||
| 257 | 58 60 59 60 65 | ||
| 258 | 66 67 69 71 72 72 75 77 | ||
| 259 | 39 42 43 45 47 47 46 | ||
| 260 | 82 84 85 87 90 90 91 91 | ||
| 261 | 1 2 2 4 8 | ||
| 262 | 10 11 12 14 14 15 20 | ||
| 263 | 20 22 25 29 31 | ||
| 264 | 62 64 66 70 69 | ||
| 265 | 67 69 73 75 78 78 | ||
| 266 | 55 57 60 64 68 | ||
| 267 | 14 17 19 20 24 26 31 | ||
| 268 | 2 3 8 10 13 | ||
| 269 | 20 23 26 29 36 34 | ||
| 270 | 69 71 76 78 79 82 82 | ||
| 271 | 31 33 35 38 43 47 | ||
| 272 | 37 39 45 48 50 52 58 | ||
| 273 | 17 15 16 19 20 23 25 | ||
| 274 | 17 14 17 19 22 24 27 24 | ||
| 275 | 46 44 47 49 52 55 56 56 | ||
| 276 | 55 53 55 56 58 60 63 67 | ||
| 277 | 7 5 6 8 11 12 18 | ||
| 278 | 69 67 70 71 72 70 72 74 | ||
| 279 | 88 85 87 86 85 | ||
| 280 | 13 10 12 13 10 12 12 | ||
| 281 | 58 56 57 58 56 60 | ||
| 282 | 68 67 66 68 69 76 | ||
| 283 | 9 7 9 10 12 14 14 15 | ||
| 284 | 34 31 32 35 37 37 36 | ||
| 285 | 26 23 24 25 28 28 30 30 | ||
| 286 | 70 67 68 68 72 | ||
| 287 | 85 82 84 84 85 91 | ||
| 288 | 12 9 13 15 18 20 | ||
| 289 | 56 54 57 61 60 | ||
| 290 | 58 57 58 62 65 65 | ||
| 291 | 60 58 62 64 67 71 | ||
| 292 | 56 55 57 61 63 70 | ||
| 293 | 30 29 36 38 40 41 43 44 | ||
| 294 | 59 56 59 61 67 69 68 | ||
| 295 | 32 30 35 37 40 41 41 | ||
| 296 | 59 57 62 64 67 70 72 76 | ||
| 297 | 65 62 65 68 75 77 82 | ||
| 298 | 5 5 8 10 12 14 15 | ||
| 299 | 59 59 61 64 66 67 70 68 | ||
| 300 | 36 36 37 40 42 43 45 45 | ||
| 301 | 74 74 76 77 81 | ||
| 302 | 27 27 30 31 33 35 36 42 | ||
| 303 | 74 74 76 75 77 79 80 | ||
| 304 | 41 41 40 41 40 | ||
| 305 | 82 82 83 84 82 84 86 86 | ||
| 306 | 40 40 38 41 43 46 50 | ||
| 307 | 18 18 21 20 25 | ||
| 308 | 13 13 13 16 17 | ||
| 309 | 47 47 49 49 47 | ||
| 310 | 17 17 19 19 22 23 24 24 | ||
| 311 | 43 43 45 45 49 | ||
| 312 | 1 1 1 4 9 | ||
| 313 | 43 43 47 49 51 52 55 56 | ||
| 314 | 58 58 60 61 64 68 67 | ||
| 315 | 16 16 19 20 23 27 27 | ||
| 316 | 55 55 58 62 66 | ||
| 317 | 23 23 24 26 28 31 35 42 | ||
| 318 | 76 76 79 84 85 87 | ||
| 319 | 82 82 84 91 89 | ||
| 320 | 44 44 46 51 52 52 | ||
| 321 | 66 66 69 76 77 79 83 | ||
| 322 | 36 36 41 42 45 50 | ||
| 323 | 17 21 23 24 27 | ||
| 324 | 45 49 51 52 55 53 | ||
| 325 | 23 27 29 31 31 | ||
| 326 | 44 48 49 51 52 54 58 | ||
| 327 | 6 10 12 15 20 | ||
| 328 | 66 70 73 72 74 | ||
| 329 | 34 38 41 43 41 40 | ||
| 330 | 28 32 34 32 32 | ||
| 331 | 16 20 23 24 27 29 28 32 | ||
| 332 | 62 66 63 64 67 70 75 | ||
| 333 | 18 22 23 23 26 28 | ||
| 334 | 5 9 10 11 12 12 15 12 | ||
| 335 | 15 19 19 22 24 24 | ||
| 336 | 43 47 49 49 53 | ||
| 337 | 61 65 67 67 73 | ||
| 338 | 12 16 17 21 24 27 28 30 | ||
| 339 | 1 5 8 12 10 | ||
| 340 | 78 82 84 87 89 93 96 96 | ||
| 341 | 70 74 76 78 81 85 88 92 | ||
| 342 | 72 76 77 79 82 86 93 | ||
| 343 | 57 61 62 69 70 | ||
| 344 | 34 38 40 42 45 52 55 52 | ||
| 345 | 54 58 60 65 68 68 | ||
| 346 | 77 81 87 90 92 96 | ||
| 347 | 2 6 11 12 19 | ||
| 348 | 21 26 27 30 32 33 | ||
| 349 | 43 48 50 51 49 | ||
| 350 | 78 84 87 89 91 92 94 94 | ||
| 351 | 42 49 51 54 57 60 63 67 | ||
| 352 | 57 62 65 68 70 77 | ||
| 353 | 85 92 89 90 91 93 | ||
| 354 | 10 15 17 19 18 20 19 | ||
| 355 | 33 40 38 41 42 45 47 47 | ||
| 356 | 17 24 25 27 29 27 31 | ||
| 357 | 83 88 86 87 89 94 | ||
| 358 | 24 30 32 35 35 36 38 39 | ||
| 359 | 78 83 84 84 85 87 88 85 | ||
| 360 | 11 16 17 18 19 19 21 21 | ||
| 361 | 86 91 94 94 98 | ||
| 362 | 43 48 50 50 53 60 | ||
| 363 | 68 74 78 81 82 | ||
| 364 | 30 37 40 43 47 45 | ||
| 365 | 26 33 37 39 39 | ||
| 366 | 48 54 55 58 62 64 65 69 | ||
| 367 | 46 51 53 57 62 | ||
| 368 | 38 45 50 53 55 56 | ||
| 369 | 29 34 40 41 42 43 45 44 | ||
| 370 | 2 8 9 15 16 19 19 | ||
| 371 | 4 9 14 17 18 20 23 27 | ||
| 372 | 20 26 28 33 39 | ||
| 373 | 68 65 64 63 61 62 | ||
| 374 | 11 8 6 3 2 2 | ||
| 375 | 31 30 29 28 25 23 22 18 | ||
| 376 | 90 88 85 83 80 73 | ||
| 377 | 26 24 22 21 19 21 18 17 | ||
| 378 | 20 17 14 13 16 14 16 | ||
| 379 | 10 9 8 10 8 6 3 3 | ||
| 380 | 59 56 54 57 54 51 47 | ||
| 381 | 99 96 95 92 93 92 91 85 | ||
| 382 | 76 74 72 72 70 67 | ||
| 383 | 67 65 63 61 58 58 57 59 | ||
| 384 | 37 35 32 32 30 30 | ||
| 385 | 86 84 81 80 80 79 78 74 | ||
| 386 | 88 85 83 83 80 79 74 | ||
| 387 | 89 87 84 81 77 76 | ||
| 388 | 75 72 70 69 66 62 64 | ||
| 389 | 48 46 45 44 43 39 39 | ||
| 390 | 49 47 46 42 39 37 33 | ||
| 391 | 72 70 68 64 62 57 | ||
| 392 | 82 80 77 72 69 68 66 64 | ||
| 393 | 62 60 58 56 54 49 47 50 | ||
| 394 | 68 65 63 56 53 53 | ||
| 395 | 35 32 31 24 20 | ||
| 396 | 24 23 22 15 8 | ||
| 397 | 56 57 56 55 54 51 50 49 | ||
| 398 | 89 90 89 86 88 | ||
| 399 | 27 30 28 26 24 21 19 19 | ||
| 400 | 89 90 87 86 83 79 | ||
| 401 | 62 65 62 60 57 56 49 | ||
| 402 | 73 74 75 72 69 68 66 | ||
| 403 | 72 74 77 76 73 74 | ||
| 404 | 25 28 29 26 23 20 19 19 | ||
| 405 | 86 87 88 87 85 82 78 | ||
| 406 | 85 88 86 89 86 85 84 79 | ||
| 407 | 17 20 19 18 18 16 15 14 | ||
| 408 | 16 19 16 16 15 16 | ||
| 409 | 92 93 93 91 91 | ||
| 410 | 85 86 85 82 82 80 76 | ||
| 411 | 58 60 60 59 56 51 | ||
| 412 | 75 76 74 70 69 68 | ||
| 413 | 79 82 78 77 76 73 75 | ||
| 414 | 40 42 38 36 34 34 | ||
| 415 | 28 29 27 25 21 20 16 | ||
| 416 | 69 71 67 64 63 57 | ||
| 417 | 39 41 38 36 29 27 | ||
| 418 | 50 52 51 45 44 43 45 | ||
| 419 | 88 90 87 85 78 78 | ||
| 420 | 34 36 34 31 25 23 20 16 | ||
| 421 | 93 94 89 86 84 83 76 | ||
| 422 | 57 57 54 53 50 47 46 43 | ||
| 423 | 86 86 85 83 85 | ||
| 424 | 66 66 65 64 62 61 58 58 | ||
| 425 | 91 91 89 87 84 80 | ||
| 426 | 95 95 92 91 89 87 85 78 | ||
| 427 | 27 27 24 23 26 24 21 20 | ||
| 428 | 81 81 78 75 73 76 73 76 | ||
| 429 | 11 11 12 9 9 | ||
| 430 | 38 38 39 37 36 32 | ||
| 431 | 50 50 47 50 49 42 | ||
| 432 | 19 19 19 17 14 12 10 | ||
| 433 | 19 19 16 13 13 15 | ||
| 434 | 7 7 6 4 3 3 1 1 | ||
| 435 | 25 25 25 24 22 20 16 | ||
| 436 | 53 53 50 48 48 45 38 | ||
| 437 | 28 28 24 22 21 18 17 | ||
| 438 | 78 78 75 73 69 68 70 | ||
| 439 | 97 97 96 93 92 88 88 | ||
| 440 | 56 56 54 50 46 | ||
| 441 | 88 88 87 83 81 80 79 72 | ||
| 442 | 22 22 20 19 16 11 8 7 | ||
| 443 | 42 42 41 40 34 33 35 | ||
| 444 | 34 34 31 24 21 19 16 16 | ||
| 445 | 25 25 18 17 13 | ||
| 446 | 36 36 33 31 29 26 21 16 | ||
| 447 | 56 52 49 47 45 | ||
| 448 | 80 76 73 72 71 70 72 | ||
| 449 | 57 53 52 49 49 | ||
| 450 | 37 33 32 30 28 25 23 19 | ||
| 451 | 97 93 90 88 87 80 | ||
| 452 | 89 85 88 85 82 81 80 | ||
| 453 | 26 22 21 22 24 | ||
| 454 | 98 94 92 89 90 89 89 | ||
| 455 | 40 36 35 33 32 29 31 27 | ||
| 456 | 21 17 14 12 11 8 11 5 | ||
| 457 | 57 53 53 50 49 | ||
| 458 | 76 72 71 71 72 | ||
| 459 | 65 61 58 55 55 55 | ||
| 460 | 25 21 18 18 14 | ||
| 461 | 34 30 30 29 26 23 17 | ||
| 462 | 32 28 24 21 18 15 | ||
| 463 | 98 94 93 91 90 86 89 | ||
| 464 | 17 13 9 6 5 3 3 | ||
| 465 | 79 75 74 70 68 64 | ||
| 466 | 28 24 20 19 16 13 12 6 | ||
| 467 | 72 68 66 63 62 59 53 52 | ||
| 468 | 50 46 45 39 40 | ||
| 469 | 98 94 92 89 83 83 | ||
| 470 | 50 46 44 38 35 34 30 | ||
| 471 | 34 30 24 22 16 | ||
| 472 | 48 43 40 37 34 32 | ||
| 473 | 57 50 47 45 43 46 | ||
| 474 | 98 92 90 88 86 83 82 82 | ||
| 475 | 81 75 72 70 69 68 64 | ||
| 476 | 20 14 12 11 9 4 | ||
| 477 | 22 17 18 17 16 14 13 | ||
| 478 | 51 44 45 44 41 44 | ||
| 479 | 53 46 45 48 48 | ||
| 480 | 41 34 37 34 31 28 27 23 | ||
| 481 | 57 50 47 46 45 44 47 41 | ||
| 482 | 31 26 26 23 20 18 | ||
| 483 | 92 87 86 86 83 84 | ||
| 484 | 91 84 82 82 81 79 76 76 | ||
| 485 | 59 54 54 51 50 49 47 43 | ||
| 486 | 31 26 26 23 22 15 | ||
| 487 | 61 54 52 48 45 43 | ||
| 488 | 98 92 88 87 88 | ||
| 489 | 86 80 79 75 72 70 69 69 | ||
| 490 | 21 15 11 10 6 | ||
| 491 | 87 82 78 75 69 | ||
| 492 | 52 46 41 38 37 | ||
| 493 | 82 77 71 68 69 | ||
| 494 | 35 28 27 21 21 | ||
| 495 | 83 78 77 71 69 67 65 61 | ||
| 496 | 84 77 75 70 67 62 | ||
| 497 | 64 64 62 58 56 | ||
| 498 | 55 62 64 66 67 74 78 | ||
| 499 | 55 48 47 44 43 43 44 | ||
| 500 | 84 85 81 78 76 71 | ||
| 501 | 1 5 9 12 14 14 | ||
| 502 | 59 59 55 53 50 46 | ||
| 503 | 19 25 26 29 29 32 34 38 | ||
| 504 | 68 69 70 76 79 77 | ||
| 505 | 77 72 71 70 67 67 67 | ||
| 506 | 80 80 82 81 84 85 85 | ||
| 507 | 37 35 37 39 42 45 47 45 | ||
| 508 | 47 43 40 38 36 38 38 | ||
| 509 | 93 86 83 81 79 | ||
| 510 | 79 81 82 82 87 | ||
| 511 | 94 90 89 87 81 78 76 71 | ||
| 512 | 46 44 38 35 37 | ||
| 513 | 28 35 36 37 43 40 | ||
| 514 | 34 31 35 37 38 41 42 46 | ||
| 515 | 84 77 71 68 65 66 | ||
| 516 | 65 64 62 56 53 50 | ||
| 517 | 38 45 46 49 53 55 57 57 | ||
| 518 | 34 41 43 47 51 | ||
| 519 | 26 24 21 22 20 13 | ||
| 520 | 42 47 51 52 55 58 65 | ||
| 521 | 52 51 48 45 40 38 38 | ||
| 522 | 54 51 54 56 56 60 | ||
| 523 | 27 26 29 30 31 35 37 37 | ||
| 524 | 64 68 70 73 74 77 78 83 | ||
| 525 | 64 62 61 59 55 48 | ||
| 526 | 37 35 33 33 33 | ||
| 527 | 32 33 33 34 35 37 37 | ||
| 528 | 24 25 23 20 20 17 15 10 | ||
| 529 | 61 64 62 60 63 57 | ||
| 530 | 98 99 92 90 89 88 81 | ||
| 531 | 21 21 23 25 23 25 28 31 | ||
| 532 | 37 40 41 44 44 48 | ||
| 533 | 46 49 50 49 46 43 | ||
| 534 | 73 78 76 77 80 79 | ||
| 535 | 56 52 51 50 50 48 41 | ||
| 536 | 50 49 46 47 44 44 | ||
| 537 | 59 63 70 71 73 76 79 84 | ||
| 538 | 47 47 49 51 53 57 59 56 | ||
| 539 | 8 7 7 5 1 | ||
| 540 | 19 18 20 22 23 24 26 30 | ||
| 541 | 4 8 8 10 12 16 | ||
| 542 | 66 63 62 59 62 60 | ||
| 543 | 25 28 25 26 29 32 35 | ||
| 544 | 76 80 80 82 85 87 87 | ||
| 545 | 69 69 70 71 73 73 | ||
| 546 | 19 13 10 7 6 2 | ||
| 547 | 26 25 31 33 33 | ||
| 548 | 82 85 86 90 94 | ||
| 549 | 96 99 98 94 97 | ||
| 550 | 59 59 58 55 52 48 46 40 | ||
| 551 | 79 83 84 86 93 94 98 | ||
| 552 | 30 26 22 20 17 13 | ||
| 553 | 35 36 39 37 40 43 43 | ||
| 554 | 63 61 59 55 54 52 | ||
| 555 | 49 44 40 38 37 37 | ||
| 556 | 22 18 16 14 13 9 6 | ||
| 557 | 66 73 76 77 77 | ||
| 558 | 11 15 17 14 16 18 16 | ||
| 559 | 82 81 80 78 77 76 72 74 | ||
| 560 | 82 82 84 86 86 87 87 | ||
| 561 | 58 54 52 50 49 43 42 41 | ||
| 562 | 55 56 62 65 67 69 73 | ||
| 563 | 32 35 33 33 31 28 31 | ||
| 564 | 46 53 56 57 59 58 | ||
| 565 | 69 67 60 57 56 53 49 | ||
| 566 | 79 86 89 90 90 91 94 92 | ||
| 567 | 73 71 70 67 70 73 | ||
| 568 | 40 40 41 44 45 46 47 51 | ||
| 569 | 35 42 45 48 55 56 61 | ||
| 570 | 75 75 68 67 63 | ||
| 571 | 25 25 27 30 36 40 | ||
| 572 | 6 9 11 13 16 18 16 22 | ||
| 573 | 63 63 62 65 65 | ||
| 574 | 68 62 60 56 57 | ||
| 575 | 24 20 18 17 14 16 | ||
| 576 | 87 87 86 83 80 77 74 77 | ||
| 577 | 81 76 78 77 75 | ||
| 578 | 29 22 21 17 14 13 6 | ||
| 579 | 18 16 23 26 27 31 | ||
| 580 | 46 46 49 50 52 49 | ||
| 581 | 47 40 37 37 34 | ||
| 582 | 33 34 37 39 41 42 41 39 | ||
| 583 | 39 38 36 39 41 42 42 | ||
| 584 | 81 81 80 78 77 79 76 77 | ||
| 585 | 51 55 57 57 56 | ||
| 586 | 87 90 89 87 83 81 81 | ||
| 587 | 73 70 67 65 63 60 57 53 | ||
| 588 | 76 80 78 80 83 85 85 | ||
| 589 | 57 57 61 63 64 67 71 | ||
| 590 | 81 84 81 80 77 75 72 69 | ||
| 591 | 30 29 30 33 35 42 49 | ||
| 592 | 7 7 10 11 12 12 13 18 | ||
| 593 | 21 21 23 25 26 30 30 | ||
| 594 | 78 84 86 86 89 91 91 | ||
| 595 | 15 20 22 23 24 28 | ||
| 596 | 75 71 68 65 63 60 | ||
| 597 | 51 52 46 43 41 38 37 | ||
| 598 | 70 75 78 80 83 87 88 86 | ||
| 599 | 50 43 40 38 36 34 33 28 | ||
| 600 | 92 88 82 81 80 83 | ||
| 601 | 47 47 44 46 42 | ||
| 602 | 17 13 15 13 9 | ||
| 603 | 15 15 13 11 11 11 | ||
| 604 | 46 46 43 42 40 34 36 | ||
| 605 | 79 81 77 74 70 | ||
| 606 | 7 11 16 19 22 22 | ||
| 607 | 62 62 61 57 56 59 | ||
| 608 | 27 31 32 31 36 | ||
| 609 | 65 69 68 71 73 76 | ||
| 610 | 77 77 78 81 87 | ||
| 611 | 8 5 6 9 10 10 16 | ||
| 612 | 62 63 60 60 60 | ||
| 613 | 91 91 87 85 82 80 80 | ||
| 614 | 49 49 51 49 47 42 | ||
| 615 | 62 58 57 55 54 52 48 | ||
| 616 | 19 23 25 25 30 | ||
| 617 | 26 29 33 36 39 39 | ||
| 618 | 19 23 27 29 31 34 36 37 | ||
| 619 | 46 46 46 44 40 | ||
| 620 | 58 53 46 43 42 | ||
| 621 | 27 34 35 36 37 34 37 39 | ||
| 622 | 28 30 32 31 27 | ||
| 623 | 55 56 53 52 52 | ||
| 624 | 46 46 49 55 57 59 60 59 | ||
| 625 | 64 64 62 60 59 56 51 46 | ||
| 626 | 16 20 21 23 25 22 | ||
| 627 | 26 22 19 15 16 | ||
| 628 | 40 35 35 34 33 27 | ||
| 629 | 95 89 87 85 83 82 84 80 | ||
| 630 | 14 21 22 20 21 25 | ||
| 631 | 59 59 56 54 55 52 51 | ||
| 632 | 28 30 29 27 23 | ||
| 633 | 54 60 64 66 68 | ||
| 634 | 97 99 96 93 92 91 91 90 | ||
| 635 | 14 15 16 16 14 | ||
| 636 | 63 63 61 61 64 | ||
| 637 | 12 12 16 17 19 20 23 | ||
| 638 | 12 11 9 11 13 15 | ||
| 639 | 62 69 76 77 79 79 | ||
| 640 | 20 19 21 18 19 25 | ||
| 641 | 77 73 72 70 69 62 | ||
| 642 | 22 22 22 20 19 16 14 | ||
| 643 | 51 55 56 59 57 61 | ||
| 644 | 91 95 97 99 99 | ||
| 645 | 42 41 42 45 46 49 56 | ||
| 646 | 63 59 56 55 54 48 44 | ||
| 647 | 67 68 66 64 64 62 58 | ||
| 648 | 34 38 41 44 46 50 55 | ||
| 649 | 82 79 81 83 85 86 83 81 | ||
| 650 | 81 77 75 74 72 74 68 | ||
| 651 | 41 42 40 35 34 30 | ||
| 652 | 32 36 38 42 39 | ||
| 653 | 20 24 27 27 30 31 33 | ||
| 654 | 22 28 31 33 34 37 38 | ||
| 655 | 34 33 33 36 39 42 45 47 | ||
| 656 | 40 43 45 47 49 47 | ||
| 657 | 45 39 36 31 24 | ||
| 658 | 56 52 50 49 46 45 45 | ||
| 659 | 75 78 80 77 76 75 73 76 | ||
| 660 | 88 85 82 81 80 77 77 74 | ||
| 661 | 96 90 88 86 84 83 77 73 | ||
| 662 | 69 69 67 65 62 | ||
| 663 | 4 4 6 7 11 18 | ||
| 664 | 83 83 81 80 77 76 73 69 | ||
| 665 | 76 70 67 66 64 60 58 | ||
| 666 | 38 33 32 30 29 26 26 | ||
| 667 | 36 36 37 40 40 43 44 41 | ||
| 668 | 30 29 26 24 21 19 13 8 | ||
| 669 | 22 18 15 14 14 15 | ||
| 670 | 89 87 90 91 92 89 93 | ||
| 671 | 66 62 58 57 56 53 52 47 | ||
| 672 | 86 87 84 82 79 73 | ||
| 673 | 70 66 62 61 58 55 55 | ||
| 674 | 25 26 23 22 19 15 13 | ||
| 675 | 58 60 67 68 69 71 | ||
| 676 | 29 27 25 23 20 19 17 20 | ||
| 677 | 30 29 35 38 41 43 40 | ||
| 678 | 58 59 56 49 46 46 | ||
| 679 | 33 33 35 36 38 41 42 45 | ||
| 680 | 49 49 49 48 46 39 | ||
| 681 | 51 45 44 41 43 | ||
| 682 | 13 13 10 11 14 11 | ||
| 683 | 30 29 27 27 29 | ||
| 684 | 37 32 30 27 30 30 | ||
| 685 | 15 10 5 3 2 1 1 | ||
| 686 | 20 17 21 22 24 26 29 | ||
| 687 | 51 54 53 46 45 42 44 | ||
| 688 | 73 73 72 70 65 | ||
| 689 | 41 43 46 49 54 57 60 67 | ||
| 690 | 37 43 43 45 47 53 | ||
| 691 | 2 2 4 6 7 7 9 13 | ||
| 692 | 42 49 48 50 52 54 57 57 | ||
| 693 | 27 26 28 31 32 34 34 | ||
| 694 | 78 78 79 82 83 82 88 | ||
| 695 | 84 80 77 77 73 | ||
| 696 | 87 86 82 79 78 78 | ||
| 697 | 35 32 30 29 25 23 19 | ||
| 698 | 15 19 25 28 27 | ||
| 699 | 64 66 67 71 74 76 | ||
| 700 | 67 68 70 73 76 78 85 | ||
| 701 | 89 89 92 92 93 96 | ||
| 702 | 57 61 62 63 67 69 72 76 | ||
| 703 | 71 70 74 77 78 80 79 | ||
| 704 | 86 83 86 83 81 77 | ||
| 705 | 66 66 64 63 62 62 | ||
| 706 | 76 79 81 82 83 84 88 | ||
| 707 | 59 62 63 64 66 69 72 72 | ||
| 708 | 55 51 49 49 47 45 | ||
| 709 | 21 21 20 22 24 26 29 33 | ||
| 710 | 91 94 92 89 88 89 | ||
| 711 | 49 51 52 56 59 64 | ||
| 712 | 97 97 96 94 92 87 85 85 | ||
| 713 | 42 39 39 38 37 34 33 27 | ||
| 714 | 94 90 87 86 83 83 82 82 | ||
| 715 | 54 50 47 40 40 | ||
| 716 | 75 79 81 84 87 89 92 94 | ||
| 717 | 30 37 35 37 39 40 41 46 | ||
| 718 | 66 65 65 66 69 71 69 | ||
| 719 | 97 94 91 90 90 | ||
| 720 | 32 30 28 25 22 19 12 | ||
| 721 | 76 72 71 69 67 64 67 68 | ||
| 722 | 39 38 35 32 30 28 | ||
| 723 | 41 38 37 36 34 33 | ||
| 724 | 33 34 36 37 38 39 42 | ||
| 725 | 39 36 34 31 28 | ||
| 726 | 18 15 12 11 8 | ||
| 727 | 68 65 62 59 57 56 | ||
| 728 | 35 33 32 31 28 25 24 21 | ||
| 729 | 18 15 14 12 11 | ||
| 730 | 88 85 84 81 78 75 | ||
| 731 | 88 86 83 82 81 | ||
| 732 | 24 26 29 30 32 34 36 38 | ||
| 733 | 26 25 23 21 19 | ||
| 734 | 97 96 95 94 91 | ||
| 735 | 67 66 64 62 59 | ||
| 736 | 56 57 59 62 63 66 68 70 | ||
| 737 | 30 32 34 35 36 | ||
| 738 | 24 27 28 30 33 | ||
| 739 | 75 73 71 70 68 65 62 | ||
| 740 | 88 85 84 82 80 78 75 | ||
| 741 | 7 9 12 14 16 | ||
| 742 | 58 55 52 50 47 45 | ||
| 743 | 38 40 42 43 46 49 | ||
| 744 | 44 47 48 50 52 53 55 56 | ||
| 745 | 42 40 38 35 32 29 | ||
| 746 | 75 77 79 82 84 87 90 92 | ||
| 747 | 24 23 21 18 16 | ||
| 748 | 79 76 73 72 71 68 | ||
| 749 | 84 85 86 87 90 91 | ||
| 750 | 88 85 83 80 79 | ||
| 751 | 71 73 74 77 79 81 84 86 | ||
| 752 | 86 87 90 91 93 94 95 96 | ||
| 753 | 19 16 13 10 7 4 | ||
| 754 | 57 58 59 61 63 64 65 | ||
| 755 | 22 25 28 31 34 35 38 41 | ||
| 756 | 45 47 49 51 52 54 55 58 | ||
| 757 | 39 36 34 33 31 28 25 | ||
| 758 | 33 31 28 27 24 21 18 | ||
| 759 | 31 33 34 37 38 | ||
| 760 | 63 65 68 70 73 76 | ||
| 761 | 24 25 26 27 28 29 30 | ||
| 762 | 9 11 13 15 17 20 21 22 | ||
| 763 | 76 73 72 69 67 65 64 63 | ||
| 764 | 7 8 11 14 15 16 | ||
| 765 | 43 41 38 35 34 31 30 | ||
| 766 | 26 25 24 23 22 | ||
| 767 | 7 9 11 14 15 18 | ||
| 768 | 28 25 24 23 21 20 19 18 | ||
| 769 | 81 82 84 87 89 90 92 95 | ||
| 770 | 76 74 72 71 68 65 | ||
| 771 | 24 23 21 18 16 14 13 12 | ||
| 772 | 45 47 50 51 54 56 59 | ||
| 773 | 51 54 55 56 58 60 62 63 | ||
| 774 | 69 71 74 77 80 82 84 | ||
| 775 | 91 89 87 85 84 | ||
| 776 | 99 97 96 93 90 89 88 87 | ||
| 777 | 74 75 78 79 80 81 83 | ||
| 778 | 27 28 30 33 36 37 38 | ||
| 779 | 9 10 11 14 15 | ||
| 780 | 29 31 33 36 39 40 42 45 | ||
| 781 | 9 10 13 16 19 20 | ||
| 782 | 68 71 73 74 76 79 80 82 | ||
| 783 | 2 4 7 9 10 12 | ||
| 784 | 69 68 67 66 65 62 60 58 | ||
| 785 | 8 9 10 12 15 | ||
| 786 | 64 67 70 73 76 79 80 | ||
| 787 | 57 59 62 63 65 67 | ||
| 788 | 2 3 6 9 11 | ||
| 789 | 23 21 20 18 16 14 13 12 | ||
| 790 | 96 94 93 90 89 88 | ||
| 791 | 78 75 73 72 71 69 | ||
| 792 | 83 85 86 89 90 92 95 | ||
| 793 | 21 19 18 17 14 13 | ||
| 794 | 94 91 90 87 84 83 82 | ||
| 795 | 69 70 73 74 76 79 | ||
| 796 | 35 38 40 41 43 44 46 49 | ||
| 797 | 40 42 44 45 46 47 48 | ||
| 798 | 3 4 6 8 9 11 | ||
| 799 | 48 46 43 42 40 38 36 | ||
| 800 | 41 40 37 36 35 | ||
| 801 | 38 36 35 33 31 | ||
| 802 | 14 13 10 7 6 4 1 | ||
| 803 | 20 19 18 17 14 12 10 9 | ||
| 804 | 27 28 30 31 32 33 36 | ||
| 805 | 91 90 88 86 85 83 | ||
| 806 | 13 15 17 18 19 22 | ||
| 807 | 30 33 36 38 41 44 | ||
| 808 | 19 16 14 13 10 9 7 6 | ||
| 809 | 72 69 66 63 60 59 56 | ||
| 810 | 11 14 17 18 19 22 24 | ||
| 811 | 18 16 14 12 10 | ||
| 812 | 41 40 39 38 36 33 30 | ||
| 813 | 42 45 47 49 50 | ||
| 814 | 24 27 30 33 36 39 40 43 | ||
| 815 | 85 83 81 79 78 75 74 71 | ||
| 816 | 79 76 74 71 68 | ||
| 817 | 76 75 72 70 68 | ||
| 818 | 69 66 65 64 63 61 | ||
| 819 | 36 33 31 29 27 26 24 | ||
| 820 | 33 30 29 26 23 | ||
| 821 | 86 87 88 90 92 93 95 | ||
| 822 | 26 28 31 34 37 39 41 44 | ||
| 823 | 45 44 43 42 41 | ||
| 824 | 28 26 25 23 22 19 18 17 | ||
| 825 | 65 63 61 60 57 55 52 | ||
| 826 | 73 71 70 69 67 | ||
| 827 | 69 72 73 75 78 | ||
| 828 | 89 90 92 93 95 | ||
| 829 | 45 42 39 36 35 33 | ||
| 830 | 52 55 57 59 61 62 63 | ||
| 831 | 70 67 64 62 61 60 | ||
| 832 | 23 25 27 30 32 34 37 | ||
| 833 | 10 13 14 15 16 19 21 23 | ||
| 834 | 73 70 68 66 65 64 62 60 | ||
| 835 | 64 66 67 69 70 71 | ||
| 836 | 27 26 23 20 17 16 | ||
| 837 | 73 74 75 77 80 81 | ||
| 838 | 81 80 77 74 73 | ||
| 839 | 84 82 79 78 77 76 74 71 | ||
| 840 | 33 32 31 28 27 26 | ||
| 841 | 26 23 21 19 18 16 13 | ||
| 842 | 43 44 45 48 50 52 | ||
| 843 | 30 28 25 23 22 19 17 14 | ||
| 844 | 25 26 28 29 30 31 32 33 | ||
| 845 | 39 40 41 43 44 45 48 | ||
| 846 | 7 10 11 13 15 17 | ||
| 847 | 51 49 47 46 45 | ||
| 848 | 78 79 81 84 87 88 | ||
| 849 | 16 18 19 22 24 | ||
| 850 | 76 75 74 72 70 67 | ||
| 851 | 94 91 88 85 84 | ||
| 852 | 42 39 36 33 30 28 27 | ||
| 853 | 53 50 48 45 44 | ||
| 854 | 72 70 67 64 63 60 57 54 | ||
| 855 | 89 86 84 81 79 77 76 | ||
| 856 | 76 79 80 83 85 86 88 | ||
| 857 | 1 3 4 5 6 9 | ||
| 858 | 12 14 15 17 20 23 26 27 | ||
| 859 | 32 34 36 39 42 43 45 46 | ||
| 860 | 85 83 82 80 79 77 75 74 | ||
| 861 | 92 89 88 85 83 80 79 | ||
| 862 | 82 81 78 75 73 | ||
| 863 | 2 3 5 7 9 | ||
| 864 | 62 61 59 58 56 54 | ||
| 865 | 39 40 41 44 47 48 50 | ||
| 866 | 14 11 10 9 8 6 | ||
| 867 | 61 62 65 68 70 71 74 | ||
| 868 | 46 47 50 53 54 57 59 | ||
| 869 | 74 72 71 69 68 67 66 63 | ||
| 870 | 74 77 80 83 85 87 90 92 | ||
| 871 | 45 42 41 38 36 33 30 | ||
| 872 | 15 14 12 11 8 6 | ||
| 873 | 92 90 87 86 85 83 | ||
| 874 | 24 23 22 20 19 18 17 | ||
| 875 | 27 28 31 32 33 | ||
| 876 | 87 90 93 95 98 | ||
| 877 | 45 48 49 50 53 54 55 | ||
| 878 | 33 31 30 28 25 23 20 17 | ||
| 879 | 35 37 38 40 41 44 | ||
| 880 | 82 81 78 77 76 75 72 69 | ||
| 881 | 20 23 24 27 29 | ||
| 882 | 18 21 23 26 28 30 | ||
| 883 | 30 28 25 22 21 18 | ||
| 884 | 32 29 27 24 21 20 | ||
| 885 | 59 61 64 67 70 73 74 77 | ||
| 886 | 28 29 31 33 35 36 37 | ||
| 887 | 10 12 15 17 19 21 23 24 | ||
| 888 | 28 31 34 36 39 | ||
| 889 | 83 80 77 76 73 70 69 68 | ||
| 890 | 79 81 83 86 89 | ||
| 891 | 63 65 68 71 73 76 | ||
| 892 | 80 79 76 74 73 | ||
| 893 | 73 71 68 65 63 61 | ||
| 894 | 14 11 8 7 6 | ||
| 895 | 7 9 11 12 13 16 | ||
| 896 | 68 71 74 77 80 82 83 | ||
| 897 | 37 35 33 32 31 29 28 | ||
| 898 | 93 91 89 86 83 80 77 | ||
| 899 | 12 13 15 17 20 22 23 | ||
| 900 | 4 7 9 10 12 14 | ||
| 901 | 55 52 50 49 46 | ||
| 902 | 62 60 59 57 56 54 51 50 | ||
| 903 | 82 79 77 76 73 70 69 67 | ||
| 904 | 74 71 68 65 63 62 60 57 | ||
| 905 | 74 77 78 81 82 | ||
| 906 | 68 65 62 60 57 | ||
| 907 | 21 19 17 16 13 10 8 | ||
| 908 | 42 45 48 49 52 55 | ||
| 909 | 8 10 12 14 16 19 | ||
| 910 | 59 56 53 52 49 47 | ||
| 911 | 59 56 54 53 50 49 48 | ||
| 912 | 85 82 81 79 77 74 | ||
| 913 | 73 70 67 66 65 64 62 | ||
| 914 | 38 35 33 30 27 | ||
| 915 | 41 42 45 46 47 | ||
| 916 | 47 46 45 42 40 | ||
| 917 | 20 23 24 25 27 | ||
| 918 | 70 72 73 76 79 80 81 | ||
| 919 | 60 62 63 64 67 | ||
| 920 | 76 77 80 81 84 85 88 90 | ||
| 921 | 43 41 38 36 33 32 30 | ||
| 922 | 16 18 21 24 25 | ||
| 923 | 45 42 40 39 37 | ||
| 924 | 96 93 91 89 87 85 84 82 | ||
| 925 | 21 24 25 28 31 33 35 37 | ||
| 926 | 74 71 68 65 64 62 59 | ||
| 927 | 4 5 8 9 11 13 | ||
| 928 | 49 50 53 54 56 59 | ||
| 929 | 99 97 95 93 92 90 88 85 | ||
| 930 | 73 75 78 79 80 | ||
| 931 | 10 13 15 17 20 23 26 | ||
| 932 | 79 77 76 73 70 69 67 65 | ||
| 933 | 18 16 13 10 7 5 4 | ||
| 934 | 59 56 53 50 49 | ||
| 935 | 76 79 81 82 85 87 90 | ||
| 936 | 16 18 19 20 22 25 26 28 | ||
| 937 | 71 68 67 64 63 60 | ||
| 938 | 14 15 16 18 19 | ||
| 939 | 24 22 20 17 15 12 | ||
| 940 | 49 52 54 56 58 | ||
| 941 | 43 41 40 38 35 32 31 29 | ||
| 942 | 40 37 35 33 31 29 28 26 | ||
| 943 | 68 70 72 75 76 79 81 84 | ||
| 944 | 16 15 14 12 9 8 | ||
| 945 | 1 3 4 5 8 11 14 15 | ||
| 946 | 78 76 73 70 69 67 65 | ||
| 947 | 82 80 78 76 73 72 69 | ||
| 948 | 54 55 58 61 63 65 66 68 | ||
| 949 | 96 93 90 88 86 85 84 82 | ||
| 950 | 93 91 90 88 87 | ||
| 951 | 83 81 79 78 76 73 71 68 | ||
| 952 | 97 95 92 89 88 | ||
| 953 | 78 79 82 84 86 87 90 93 | ||
| 954 | 94 92 90 89 87 85 82 79 | ||
| 955 | 36 38 41 42 43 44 | ||
| 956 | 19 16 14 11 9 8 | ||
| 957 | 59 58 55 53 52 49 46 43 | ||
| 958 | 74 76 79 81 84 86 87 | ||
| 959 | 50 47 44 41 40 | ||
| 960 | 26 25 22 21 19 | ||
| 961 | 17 19 20 21 22 25 27 | ||
| 962 | 80 83 86 89 92 95 | ||
| 963 | 36 38 40 41 42 43 | ||
| 964 | 97 94 91 88 85 | ||
| 965 | 11 14 16 17 20 22 23 | ||
| 966 | 64 62 59 57 56 53 52 | ||
| 967 | 2 3 4 6 8 11 12 15 | ||
| 968 | 64 62 59 58 56 | ||
| 969 | 88 89 92 94 96 97 98 99 | ||
| 970 | 12 11 9 6 4 | ||
| 971 | 68 66 65 62 59 | ||
| 972 | 51 54 55 57 60 63 | ||
| 973 | 6 7 9 10 13 15 16 18 | ||
| 974 | 62 61 58 56 55 53 | ||
| 975 | 41 38 36 34 32 | ||
| 976 | 63 64 66 67 70 72 74 75 | ||
| 977 | 51 52 54 55 57 59 61 63 | ||
| 978 | 42 40 39 36 35 | ||
| 979 | 57 59 60 61 62 63 | ||
| 980 | 31 32 35 38 39 40 | ||
| 981 | 85 87 90 93 94 95 98 | ||
| 982 | 90 87 86 84 83 82 | ||
| 983 | 52 50 48 46 44 41 40 37 | ||
| 984 | 28 29 32 33 35 | ||
| 985 | 34 37 40 41 42 43 | ||
| 986 | 68 67 65 64 61 | ||
| 987 | 32 30 28 27 24 21 19 16 | ||
| 988 | 25 22 21 20 18 | ||
| 989 | 68 66 64 62 61 60 | ||
| 990 | 55 56 57 59 62 65 66 | ||
| 991 | 13 14 17 18 20 23 24 25 | ||
| 992 | 17 14 11 9 8 6 | ||
| 993 | 32 30 27 26 25 | ||
| 994 | 16 18 21 23 26 29 30 | ||
| 995 | 34 37 38 39 40 43 45 47 | ||
| 996 | 20 22 24 26 29 31 32 33 | ||
| 997 | 57 56 53 50 47 44 | ||
| 998 | 59 62 64 66 68 | ||
| 999 | 68 70 73 75 77 | ||
| 1000 | 35 33 30 27 26 25 24 23 | ||
diff --git a/day02/solution.cpp b/day02/solution.cpp new file mode 100644 index 0000000..e4f47b8 --- /dev/null +++ b/day02/solution.cpp | |||
| @@ -0,0 +1,81 @@ | |||
| 1 | #include <numeric> | ||
| 2 | #include <cassert> | ||
| 3 | #include <print> | ||
| 4 | #include <iostream> | ||
| 5 | #include <vector> | ||
| 6 | #include <ranges> | ||
| 7 | #include <algorithm> | ||
| 8 | #include <sstream> | ||
| 9 | |||
| 10 | namespace ranges = std::ranges; | ||
| 11 | namespace views = std::views; | ||
| 12 | |||
| 13 | const auto parse_input() { | ||
| 14 | std::vector<std::vector<int>> result; | ||
| 15 | for (std::string s; std::getline(std::cin, s);) { | ||
| 16 | std::stringstream ss{s}; | ||
| 17 | std::vector<int> row; | ||
| 18 | for (int l; ss >> l;) { | ||
| 19 | row.push_back(l); | ||
| 20 | } | ||
| 21 | result.push_back(row); | ||
| 22 | } | ||
| 23 | return result; | ||
| 24 | } | ||
| 25 | |||
| 26 | bool safe_report(const auto &report) { | ||
| 27 | assert(report.size() > 0); | ||
| 28 | std::vector<int> _diffs(report.size()); | ||
| 29 | std::adjacent_difference(report.begin(), report.end(), _diffs.begin()); | ||
| 30 | |||
| 31 | // The first diff is from 0 (zero) to the first layer, so we ignore it | ||
| 32 | const auto diffs = ranges::subrange(_diffs.begin() + 1, _diffs.end()); | ||
| 33 | const bool ascending = std::count_if(diffs.begin(), diffs.end(), [](int d) { | ||
| 34 | return d > 0; | ||
| 35 | }) > (diffs.size() / 2); | ||
| 36 | |||
| 37 | const bool safe = ranges::all_of(diffs, [ascending](int d) { | ||
| 38 | const bool bounded = (1 <= std::abs(d) and std::abs(d) <= 3); | ||
| 39 | const bool monotonic = ((d > 0 and ascending) or (d < 0 and not ascending)); | ||
| 40 | return monotonic and bounded; | ||
| 41 | }); | ||
| 42 | return safe; | ||
| 43 | } | ||
| 44 | |||
| 45 | void part1(const auto &input) { | ||
| 46 | int answer{0}; | ||
| 47 | |||
| 48 | for (const auto &report : input) { | ||
| 49 | if (safe_report(report)) { | ||
| 50 | ++answer; | ||
| 51 | } | ||
| 52 | } | ||
| 53 | |||
| 54 | std::println("{}", answer); | ||
| 55 | } | ||
| 56 | |||
| 57 | void part2(const auto &input) { | ||
| 58 | int answer{0}; | ||
| 59 | for (const auto &report : input) { | ||
| 60 | if (ranges::any_of(views::iota(size_t(0), report.size()), [&report](size_t i) { | ||
| 61 | return safe_report(views::concat(report | views::take(i), | ||
| 62 | report | views::drop(i + 1))); | ||
| 63 | })) { | ||
| 64 | ++answer; | ||
| 65 | } | ||
| 66 | } | ||
| 67 | std::println("{}", answer); | ||
| 68 | } | ||
| 69 | |||
| 70 | int main() { | ||
| 71 | const auto input = parse_input(); | ||
| 72 | |||
| 73 | #ifndef NO_PART1 | ||
| 74 | part1(input); | ||
| 75 | #endif | ||
| 76 | |||
| 77 | #ifndef NO_PART2 | ||
| 78 | part2(input); | ||
| 79 | #endif | ||
| 80 | return 0; | ||
| 81 | } | ||
diff --git a/day02/tests/test1.input b/day02/tests/test1.input new file mode 100644 index 0000000..b49c10d --- /dev/null +++ b/day02/tests/test1.input | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | 7 6 4 2 1 | ||
| 2 | 1 2 7 8 9 | ||
| 3 | 9 7 6 2 1 | ||
| 4 | 1 3 2 4 5 | ||
| 5 | 8 6 4 4 1 | ||
| 6 | 1 3 6 7 9 | ||
diff --git a/day02/tests/test1.output b/day02/tests/test1.output new file mode 100644 index 0000000..da7f847 --- /dev/null +++ b/day02/tests/test1.output | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | 2 | ||
| 2 | 4 | ||
