Index: aoc2024.c ================================================================== --- aoc2024.c +++ aoc2024.c @@ -22,11 +22,11 @@ if (ndisk == rdisk) { // assume it works rdisk = (13*rdisk)/8; disk = realloc(disk, rdisk * sizeof *disk); } - disk[ndisk++] = fileid; + disk[ndisk++] = (fileid * 10) + (*data - '0'); // encode fileid and length } fileid++; data++; if (*data) { for (int k = 0; k < *data - '0'; k++) { @@ -55,11 +55,11 @@ *left++ = tmp; } unsigned long long chksum = 0; size_t index = 0; while (disk[index] >= 0) { - chksum += (size_t)disk[index] * index; + chksum += ((size_t)disk[index]/10) * index; index++; } printf("%llu\n", chksum); free(disk);