Overview
Comment: | 202404 2nd star |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
70a16d5d32fbf149554b5be030658d14 |
User & Date: | nnz on 2024-12-04 11:56:38 |
Original Comment: | day 4, part 2 solved |
Other Links: | manifest | tags |
Context
2024-12-04
| ||
12:02 | changed way of summing a boolean check-in: 4609a146ec user: nnz tags: trunk | |
11:56 | 202404 2nd star check-in: 70a16d5d32 user: nnz tags: trunk | |
10:51 | 202404 1st star check-in: 0fa98a442c user: nnz tags: trunk | |
Changes
Modified aoc2024.c from [3d58482423] to [bd078583fe].
︙ | |||
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | + + + + + + + + + + + + + + - + + + + + | if (masat(data, size, row, col, 0, -1)) finds++; if (masat(data, size, row, col, 0, +1)) finds++; if (masat(data, size, row, col, +1, -1)) finds++; if (masat(data, size, row, col, +1, 0)) finds++; if (masat(data, size, row, col, +1, +1)) finds++; return finds; } static bool Xmasat(char *data, unsigned size, unsigned row, unsigned col) { unsigned tmp = 0; if (data[rcmap(size, row, col)] != 'A') return false; if (data[rcmap(size, row-1, col-1)] == 'M') tmp |= 1; if (data[rcmap(size, row-1, col-1)] == 'S') tmp |= 2; if (data[rcmap(size, row-1, col+1)] == 'M') tmp |= 4; if (data[rcmap(size, row-1, col+1)] == 'S') tmp |= 8; if (data[rcmap(size, row+1, col+1)] == 'M') tmp |= 1; if (data[rcmap(size, row+1, col+1)] == 'S') tmp |= 2; if (data[rcmap(size, row+1, col-1)] == 'M') tmp |= 4; if (data[rcmap(size, row+1, col-1)] == 'S') tmp |= 8; return tmp == 15; } void aoc202404(char *data, size_t len) { (void)len; // unused argument // assume data is well-formatted and has the same number of rows and columns unsigned size = strchr(data, '\n') - data; #if 0 // check assumption printf("data has %u cols, first three rows start with %c%c, %c%c, and %c%c.\n", size, data[0], data[1], data[1*(size+1)], data[1*(size+1)+1], data[2*(size+1)], data[2*(size+1)+1]); printf("ends with %c%c.\n", data[(size-1)*(size+1) + size-2], data[(size-1)*(size+1)+size-1]); printf("data has %u cols, first three rows start with %c%c, %c%c, and %c%c.\n", size, data[rcmap(size, 0, 0)], data[rcmap(size, 0, 1)], data[rcmap(size, 1, 0)], data[rcmap(size, 1, 1)], data[rcmap(size, 2, 0)], data[rcmap(size, 2, 1)]); printf("ends with %c%c.\n", data[rcmap(size, size-1, size-2)], data[rcmap(size, size-1, size-1)]); #endif |
︙ |