From d10e284c223b28dd5ecff552ff1ff876b29fe438 Mon Sep 17 00:00:00 2001 From: dobiadi Date: Sat, 14 Dec 2024 14:42:12 +0100 Subject: [PATCH] Day14 --- day14/c/day14 | Bin 0 -> 15776 bytes day14/c/day14.c | 199 +++++++++++++++++++ day14/input.txt | 500 +++++++++++++++++++++++++++++++++++++++++++++++ day14/sample.txt | 12 ++ 4 files changed, 711 insertions(+) create mode 100755 day14/c/day14 create mode 100644 day14/c/day14.c create mode 100644 day14/input.txt create mode 100644 day14/sample.txt diff --git a/day14/c/day14 b/day14/c/day14 new file mode 100755 index 0000000000000000000000000000000000000000..7c531292a3ee5072c620c638bcd767e88b2a8094 GIT binary patch literal 15776 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 +#include +#include +#include + +#define CHARS_MAX 64 +#define MAX_ROBOTS 1024 +#define MAX_ITERATIONS 10650 + +typedef struct robot { + int p[2]; + int v[2]; +} robot_t; + +void reposition(int p[2], int v[2], int max_x, int max_y, int i); + +int main() { + char *p, *buf, c; + + buf = calloc(CHARS_MAX, sizeof(char)); + p = buf; + + robot_t *robots = calloc(MAX_ROBOTS, sizeof(robots[0])); + int robot_count = 0; + + while ((c = getchar()) != EOF) { + *p++ = c; + if (c != '\n') { + continue; + } + p = buf; + + while(*p != '=') p++; + p++; + + sscanf(p, "%i", &robots[robot_count].p[0]); + + while(*p != ',') p++; + p++; + + sscanf(p, "%i", &robots[robot_count].p[1]); + + while(*p != '=') p++; + p++; + + sscanf(p, "%i", &robots[robot_count].v[0]); + + while(*p != ',') p++; + p++; + + sscanf(p, "%i", &robots[robot_count].v[1]); + + robot_count++; + memset(buf, 0, CHARS_MAX); + p = buf; + } + + free(buf); + + int max_y = 103, max_x = 101; + + for (int i = 0; i < robot_count; i++) { + reposition(robots[i].p, robots[i].v, max_x, max_y, 100); + } + + int quadrants[4] = { 0 }; + for (int i = 0; i < max_y / 2; i++) { + for (int j = 0; j < max_x / 2; j++) { + for (int k = 0; k < robot_count; k++) { + quadrants[0] += robots[k].p[0] == j && robots[k].p[1] == i; + } + } + } + for (int i = (max_y / 2) + (max_y % 2); i < max_y; i++) { + for (int j = 0; j < max_x / 2; j++) { + for (int k = 0; k < robot_count; k++) { + quadrants[1] += robots[k].p[0] == j && robots[k].p[1] == i; + } + } + } + for (int i = (max_y / 2) + (max_y % 2); i < max_y; i++) { + for (int j = (max_x / 2) + (max_x % 2); j < max_x; j++) { + for (int k = 0; k < robot_count; k++) { + quadrants[2] += robots[k].p[0] == j && robots[k].p[1] == i; + } + } + } + for (int i = 0; i < max_y / 2; i++) { + for (int j = (max_x / 2) + (max_x % 2); j < max_x; j++) { + for (int k = 0; k < robot_count; k++) { + quadrants[3] += robots[k].p[0] == j && robots[k].p[1] == i; + } + } + } + + // RESET + for (int i = 0; i < robot_count; i++) { + reposition(robots[i].p, robots[i].v, max_x, max_y, -100); + } + + int **map = calloc(max_x, sizeof(map[0])); + for (int i = 0; i < max_x; i++) { + map[i] = calloc(max_y, sizeof(map[0][0])); + } + + for (int i = 0; i < MAX_ITERATIONS; i++) { + for (int j = 0; j < robot_count; j++) { + reposition(robots[j].p, robots[j].v, max_x, max_y, 1); + } + + for (int j = 0; j < max_y; j++) { + for (int k = 0; k < max_x; k++) { + int occupied = 0; + for (int l = 0; l < robot_count; l++) { + if (robots[l].p[0] == k && robots[l].p[1] == j) { + occupied = 1; + break; + } + } + map[k][j] = occupied; + } + } + + int display = 0; + for (int j = 0; j < max_y; j++) { + int consecutive = 0; + for (int k = 0; k < max_x; k++) { + if (map[k][j]) { + consecutive++; + } else { + consecutive = 0; + } + + if (consecutive >= 30) { + display = 1; + } + } + } + + if (!display) { + continue; + } + + for (int i = 0; i < max_y; i++) { + for (int j = 0; j < max_x; j++) { + int r = 0; + for (int k = 0; k < robot_count; k++) { + if (robots[k].p[0] == j && robots[k].p[1] == i) { + printf("1"); + r = 1; + break; + } + } + if (!r) { + printf("."); + } + } + printf("\n"); + } + printf("Part2: %i\n", i + 1); + break; + } + + + free(robots); + + for (int i = 0; i < max_x; i++) { + free(map[i]); + } + free(map); + + int safety = 1; + for (int i = 0; i < 4; i++) { + safety *= quadrants[i]; + } + + printf("Part1: %i\n", safety); +} + +void reposition(int p[2], int v[2], int max_x, int max_y, int i) { + p[0] = (p[0] + v[0] * i) % max_x; + p[1] = (p[1] + v[1] * i) % max_y; + + if (p[0] < 0) { + p[0] = max_x + p[0]; + } + + if (p[1] < 0) { + p[1] = max_y + p[1]; + } + + if (p[0] >= max_x) { + p[0] = p[0] - max_x; + } + + if (p[1] >= max_y) { + p[1] = p[1] - max_y; + } +} diff --git a/day14/input.txt b/day14/input.txt new file mode 100644 index 0000000..431470f --- /dev/null +++ b/day14/input.txt @@ -0,0 +1,500 @@ +p=39,28 v=73,-88 +p=16,81 v=72,34 +p=48,96 v=10,-27 +p=70,92 v=-64,-74 +p=31,90 v=46,73 +p=72,17 v=4,-27 +p=76,51 v=-90,90 +p=48,19 v=-6,-11 +p=4,46 v=35,8 +p=21,98 v=-72,-48 +p=84,17 v=-41,-63 +p=29,23 v=-87,-96 +p=17,38 v=-50,59 +p=9,31 v=93,-75 +p=21,21 v=99,25 +p=100,45 v=-45,-21 +p=56,79 v=-71,-71 +p=77,58 v=44,-38 +p=31,33 v=-85,-93 +p=16,42 v=-29,22 +p=99,67 v=36,-26 +p=72,56 v=-36,22 +p=91,27 v=-14,-37 +p=6,92 v=-45,-30 +p=63,18 v=64,61 +p=86,38 v=-99,13 +p=86,31 v=-27,41 +p=3,63 v=12,57 +p=80,87 v=-4,-97 +p=54,18 v=-22,-55 +p=32,61 v=-38,-75 +p=35,28 v=75,92 +p=50,69 v=95,-30 +p=75,2 v=8,-65 +p=87,65 v=-73,-41 +p=35,47 v=81,-46 +p=76,31 v=-90,36 +p=32,56 v=73,80 +p=71,57 v=-4,25 +p=95,76 v=-14,50 +p=73,98 v=6,-9 +p=55,21 v=18,-48 +p=21,3 v=83,-17 +p=36,13 v=82,-24 +p=79,11 v=51,16 +p=70,72 v=85,-16 +p=16,46 v=25,-21 +p=21,7 v=-47,44 +p=37,37 v=-18,-75 +p=5,38 v=-8,70 +p=64,85 v=-37,-56 +p=27,81 v=-18,47 +p=29,52 v=-23,31 +p=40,30 v=4,-16 +p=15,73 v=-77,3 +p=15,99 v=-82,-94 +p=26,56 v=9,55 +p=71,36 v=25,-58 +p=87,45 v=-9,-67 +p=24,20 v=-2,56 +p=33,13 v=30,9 +p=4,23 v=35,20 +p=95,29 v=-97,50 +p=36,61 v=-1,-23 +p=80,28 v=70,-29 +p=19,53 v=-40,-79 +p=75,7 v=60,43 +p=61,2 v=-63,-1 +p=28,95 v=-39,99 +p=85,7 v=99,-21 +p=59,81 v=-30,-48 +p=25,28 v=25,20 +p=55,28 v=58,-88 +p=41,4 v=33,-78 +p=91,20 v=-27,31 +p=0,14 v=87,-6 +p=58,38 v=33,-73 +p=43,44 v=47,-54 +p=75,32 v=-95,15 +p=6,35 v=-24,-16 +p=11,30 v=-3,-34 +p=97,29 v=-83,-21 +p=92,52 v=36,-94 +p=82,68 v=49,62 +p=9,102 v=-62,-66 +p=38,98 v=-54,87 +p=64,26 v=-15,92 +p=32,93 v=-87,-30 +p=79,70 v=-47,13 +p=77,57 v=65,83 +p=55,38 v=-96,-3 +p=35,56 v=-91,37 +p=42,84 v=84,70 +p=9,87 v=-87,-84 +p=55,9 v=5,-81 +p=21,53 v=-55,49 +p=79,67 v=91,-51 +p=49,14 v=83,-89 +p=39,48 v=11,77 +p=68,84 v=36,-55 +p=84,13 v=-84,-86 +p=20,14 v=10,-35 +p=70,64 v=-53,-95 +p=12,61 v=62,21 +p=91,38 v=44,10 +p=14,62 v=19,75 +p=91,21 v=76,10 +p=88,88 v=60,91 +p=99,60 v=23,-13 +p=19,12 v=3,35 +p=33,97 v=67,-19 +p=54,100 v=95,32 +p=4,41 v=-8,-21 +p=90,68 v=-41,52 +p=9,93 v=39,-43 +p=39,87 v=-17,-71 +p=60,60 v=47,-18 +p=61,85 v=-27,24 +p=45,49 v=63,67 +p=51,54 v=-33,-79 +p=2,22 v=-35,-42 +p=18,17 v=-66,-21 +p=71,76 v=18,-88 +p=76,62 v=-63,67 +p=59,70 v=-53,21 +p=30,86 v=-28,10 +p=83,76 v=12,-97 +p=3,101 v=-85,-82 +p=11,0 v=-72,94 +p=12,26 v=62,84 +p=28,1 v=-23,53 +p=78,5 v=49,4 +p=17,76 v=29,-95 +p=31,59 v=-76,-18 +p=18,19 v=35,-42 +p=4,82 v=35,-20 +p=97,101 v=2,22 +p=31,50 v=-39,-39 +p=91,4 v=-20,-27 +p=79,73 v=-56,76 +p=55,99 v=-48,-4 +p=69,6 v=95,-15 +p=18,95 v=56,63 +p=92,100 v=-62,-14 +p=31,17 v=66,-47 +p=86,77 v=-54,20 +p=19,41 v=83,41 +p=12,23 v=-63,12 +p=49,4 v=-59,94 +p=11,89 v=13,19 +p=21,16 v=-18,30 +p=21,93 v=-55,-50 +p=98,97 v=77,-61 +p=57,102 v=-11,-99 +p=66,24 v=48,-83 +p=40,7 v=-38,-63 +p=86,93 v=59,45 +p=12,33 v=-29,-3 +p=38,4 v=-39,7 +p=83,49 v=-98,69 +p=82,29 v=53,54 +p=72,66 v=81,-18 +p=46,100 v=-22,9 +p=12,63 v=29,8 +p=19,32 v=67,40 +p=6,6 v=66,-63 +p=53,51 v=96,-7 +p=88,3 v=66,-24 +p=90,4 v=38,-35 +p=90,85 v=7,-17 +p=98,19 v=55,66 +p=58,45 v=-85,18 +p=15,20 v=-66,-65 +p=28,72 v=56,63 +p=77,98 v=65,50 +p=15,25 v=51,-29 +p=27,33 v=-7,64 +p=40,52 v=30,5 +p=85,85 v=38,52 +p=81,11 v=80,89 +p=91,12 v=-25,-86 +p=45,85 v=30,37 +p=79,46 v=-5,-70 +p=95,9 v=98,-63 +p=42,41 v=-39,72 +p=76,40 v=-26,-23 +p=17,87 v=-79,-26 +p=59,6 v=-96,-32 +p=99,28 v=13,19 +p=8,93 v=29,-40 +p=28,82 v=15,63 +p=41,87 v=66,-64 +p=77,78 v=-31,65 +p=11,7 v=40,-89 +p=99,38 v=87,-80 +p=54,3 v=88,80 +p=11,64 v=-2,-24 +p=47,14 v=-4,7 +p=3,17 v=50,61 +p=94,60 v=1,29 +p=38,27 v=-81,3 +p=79,32 v=-65,-74 +p=19,39 v=-59,-1 +p=46,47 v=-43,-31 +p=96,24 v=-41,-44 +p=66,95 v=22,17 +p=15,62 v=72,93 +p=100,66 v=-98,-8 +p=79,94 v=27,55 +p=33,1 v=-72,77 +p=50,31 v=79,-52 +p=74,84 v=-63,-19 +p=73,32 v=91,-44 +p=98,63 v=7,-46 +p=16,30 v=25,-57 +p=68,49 v=79,37 +p=70,39 v=70,82 +p=7,3 v=-24,45 +p=42,27 v=-47,-97 +p=42,22 v=-17,-65 +p=31,29 v=61,32 +p=80,38 v=38,-88 +p=93,81 v=49,-40 +p=82,35 v=-39,45 +p=34,7 v=-44,58 +p=74,55 v=30,-85 +p=39,101 v=-55,-5 +p=15,98 v=-66,81 +p=28,84 v=-61,-30 +p=77,62 v=-65,48 +p=90,100 v=44,63 +p=4,35 v=-67,23 +p=57,73 v=-92,-81 +p=74,30 v=-47,38 +p=82,5 v=-20,-73 +p=17,34 v=19,-50 +p=66,27 v=32,46 +p=36,26 v=36,25 +p=27,97 v=-55,68 +p=52,62 v=26,98 +p=25,68 v=88,91 +p=71,59 v=27,-28 +p=97,6 v=50,94 +p=35,64 v=52,-85 +p=56,91 v=-64,-76 +p=25,5 v=-18,-55 +p=79,50 v=-51,25 +p=14,5 v=-16,-36 +p=76,63 v=-47,-20 +p=66,39 v=27,-39 +p=37,46 v=-54,5 +p=59,19 v=-85,-55 +p=50,45 v=-37,93 +p=30,9 v=72,-9 +p=33,79 v=20,65 +p=19,6 v=-25,-11 +p=14,96 v=4,72 +p=90,29 v=-11,-13 +p=55,78 v=42,-38 +p=25,71 v=-49,-5 +p=74,87 v=44,-17 +p=89,81 v=75,-27 +p=30,5 v=-35,-86 +p=41,1 v=46,17 +p=97,90 v=-68,94 +p=97,80 v=8,-69 +p=77,29 v=-78,-39 +p=45,66 v=68,-79 +p=17,75 v=-47,88 +p=95,64 v=74,-23 +p=54,14 v=21,66 +p=80,46 v=89,53 +p=56,49 v=18,-93 +p=97,91 v=97,-2 +p=68,20 v=-84,77 +p=72,75 v=59,34 +p=86,26 v=-67,-57 +p=1,85 v=-89,-87 +p=87,99 v=-6,-90 +p=88,97 v=92,14 +p=28,77 v=77,-21 +p=53,54 v=26,-69 +p=43,96 v=52,-22 +p=55,62 v=-30,-15 +p=22,43 v=-82,90 +p=34,99 v=35,-81 +p=97,76 v=-30,-48 +p=55,34 v=37,28 +p=53,80 v=-27,60 +p=71,70 v=-4,60 +p=94,47 v=-40,36 +p=50,4 v=53,-96 +p=54,12 v=-64,27 +p=100,70 v=2,-48 +p=48,29 v=74,-47 +p=59,94 v=85,-9 +p=58,70 v=-64,78 +p=43,50 v=36,-98 +p=93,41 v=60,41 +p=92,3 v=60,-32 +p=78,67 v=46,-93 +p=36,4 v=57,-9 +p=20,49 v=-82,36 +p=16,9 v=88,40 +p=48,1 v=-43,-22 +p=38,20 v=-65,43 +p=16,4 v=45,-94 +p=73,22 v=-24,-50 +p=67,25 v=-90,2 +p=92,14 v=39,-55 +p=20,70 v=12,-98 +p=92,86 v=94,-47 +p=9,22 v=-55,2 +p=50,1 v=47,-45 +p=33,66 v=95,8 +p=88,76 v=81,47 +p=75,75 v=-58,88 +p=60,24 v=37,-86 +p=42,31 v=57,-69 +p=94,79 v=23,6 +p=92,15 v=54,-1 +p=34,85 v=-49,19 +p=9,20 v=-87,-34 +p=37,7 v=84,-1 +p=25,100 v=74,-12 +p=84,71 v=94,70 +p=85,62 v=-60,-76 +p=45,81 v=-92,-92 +p=40,90 v=57,24 +p=17,55 v=14,-67 +p=13,91 v=56,91 +p=25,99 v=79,-91 +p=97,50 v=54,-41 +p=82,22 v=-45,54 +p=93,67 v=34,-36 +p=12,85 v=-34,-51 +p=64,92 v=80,37 +p=65,47 v=77,-56 +p=19,56 v=-82,-67 +p=37,33 v=73,33 +p=40,43 v=99,58 +p=30,80 v=-12,29 +p=51,80 v=-81,71 +p=22,35 v=35,-68 +p=17,4 v=-34,46 +p=100,48 v=29,-49 +p=7,50 v=56,72 +p=54,70 v=73,52 +p=93,83 v=-62,50 +p=35,67 v=-81,34 +p=35,95 v=57,76 +p=80,76 v=-58,-8 +p=60,68 v=2,-99 +p=76,50 v=-90,90 +p=99,85 v=12,-23 +p=37,97 v=57,-9 +p=5,93 v=-50,-7 +p=92,44 v=-78,99 +p=98,90 v=60,57 +p=59,53 v=37,85 +p=54,84 v=-74,29 +p=37,44 v=43,45 +p=99,43 v=79,3 +p=30,1 v=-29,-9 +p=19,101 v=-66,-1 +p=38,92 v=-63,-23 +p=10,29 v=-37,66 +p=2,43 v=-83,77 +p=73,19 v=-73,-10 +p=99,59 v=-3,93 +p=88,3 v=-12,-86 +p=67,68 v=58,-33 +p=74,82 v=-11,56 +p=7,100 v=8,14 +p=78,55 v=33,80 +p=62,16 v=79,-45 +p=11,15 v=72,-88 +p=77,10 v=-9,79 +p=54,31 v=-91,82 +p=52,4 v=96,-79 +p=15,39 v=-29,-80 +p=80,35 v=-4,-39 +p=92,84 v=73,78 +p=33,24 v=-40,-93 +p=34,85 v=84,96 +p=19,76 v=-50,-56 +p=49,87 v=50,-20 +p=91,37 v=71,31 +p=23,51 v=-87,-49 +p=25,36 v=-76,-52 +p=53,89 v=-44,30 +p=87,63 v=-36,-5 +p=12,9 v=8,97 +p=75,19 v=-16,92 +p=8,59 v=77,57 +p=64,14 v=-37,-32 +p=27,79 v=-17,99 +p=13,59 v=-99,-36 +p=91,91 v=65,-12 +p=72,74 v=-13,93 +p=56,69 v=59,-33 +p=49,78 v=-91,75 +p=66,79 v=42,68 +p=68,32 v=48,38 +p=74,86 v=33,-60 +p=4,99 v=-88,-32 +p=48,11 v=-22,-1 +p=60,3 v=32,-45 +p=15,79 v=-55,99 +p=51,69 v=47,31 +p=49,93 v=-1,-17 +p=62,46 v=-16,-80 +p=94,66 v=55,-79 +p=29,91 v=75,18 +p=49,20 v=80,4 +p=66,56 v=57,54 +p=83,72 v=-84,-7 +p=91,82 v=-41,50 +p=21,8 v=91,-13 +p=24,83 v=-50,-92 +p=73,8 v=-91,54 +p=36,7 v=15,89 +p=60,10 v=-54,46 +p=47,82 v=-85,96 +p=85,93 v=97,37 +p=67,14 v=33,-37 +p=66,80 v=60,-95 +p=49,14 v=-53,-68 +p=80,99 v=44,50 +p=72,61 v=-64,39 +p=6,91 v=29,-40 +p=35,82 v=-50,86 +p=97,70 v=33,-30 +p=30,10 v=-12,4 +p=29,102 v=88,-95 +p=53,56 v=-96,-10 +p=98,30 v=55,-26 +p=40,5 v=62,-11 +p=60,57 v=21,-5 +p=72,16 v=-21,17 +p=88,60 v=7,-95 +p=69,78 v=-11,68 +p=75,29 v=-7,-4 +p=49,28 v=-64,7 +p=83,22 v=-52,-55 +p=13,22 v=-5,-55 +p=48,94 v=-17,-68 +p=28,6 v=94,-5 +p=93,33 v=-94,-80 +p=48,32 v=-32,79 +p=1,33 v=29,-42 +p=79,49 v=73,46 +p=70,21 v=34,99 +p=28,55 v=30,62 +p=16,80 v=77,-64 +p=30,97 v=-23,76 +p=68,47 v=49,28 +p=34,83 v=25,-44 +p=32,75 v=4,-33 +p=70,33 v=-96,36 +p=74,52 v=44,-64 +p=43,17 v=-49,7 +p=4,26 v=-5,-65 +p=67,44 v=64,49 +p=59,57 v=-43,49 +p=38,79 v=20,16 +p=10,3 v=51,25 +p=69,0 v=3,73 +p=2,26 v=7,-19 +p=44,38 v=-27,33 +p=33,85 v=19,14 +p=49,81 v=-46,-16 +p=17,57 v=-66,39 +p=46,51 v=-54,-77 +p=59,20 v=70,-16 +p=38,70 v=84,83 +p=63,50 v=37,18 +p=92,57 v=-46,-23 +p=2,12 v=-78,89 +p=58,76 v=11,-95 +p=11,61 v=8,-59 +p=8,52 v=-56,-41 +p=55,39 v=-89,44 +p=2,13 v=-86,23 +p=72,71 v=-64,-61 +p=78,32 v=-69,33 +p=93,82 v=-9,-2 +p=25,72 v=-72,-16 +p=51,7 v=-21,71 +p=78,66 v=-47,75 +p=14,48 v=18,-64 +p=7,37 v=-3,-80 +p=15,5 v=-8,40 +p=78,2 v=-20,-80 +p=72,78 v=-42,-30 +p=19,18 v=35,-83 +p=32,35 v=79,-11 +p=33,69 v=-81,-82 +p=100,61 v=23,-5 +p=41,24 v=-55,25 diff --git a/day14/sample.txt b/day14/sample.txt new file mode 100644 index 0000000..2455da4 --- /dev/null +++ b/day14/sample.txt @@ -0,0 +1,12 @@ +p=0,4 v=3,-3 +p=6,3 v=-1,-3 +p=10,3 v=-1,2 +p=2,0 v=2,-1 +p=0,0 v=1,3 +p=3,0 v=-2,-2 +p=7,6 v=-1,-3 +p=3,0 v=-1,-2 +p=9,3 v=2,3 +p=7,3 v=-1,2 +p=2,4 v=2,-3 +p=9,5 v=-3,-3