From c3406a02a178421218e152ddf0609f50268be23b Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Fri, 6 Dec 2019 05:53:42 -0500 Subject: Solve day 6 part 1 --- 2019/day06.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 2019/day06.c diff --git a/2019/day06.c b/2019/day06.c new file mode 100644 index 0000000..fbfda57 --- /dev/null +++ b/2019/day06.c @@ -0,0 +1,40 @@ +#include +#include +#include + +static struct Node { + char name[4]; + size_t parent; +} tree[2048]; + +static size_t node(const char *name) { + size_t i; + for (i = 0; tree[i].name[0]; ++i) { + if (strcmp(name, tree[i].name)) continue; + return i; + } + strncpy(tree[i].name, name, sizeof(tree[i].name)); + return i; +} + +static size_t ancestors(size_t i) { + size_t n = 0; + while (i) { + i = tree[i].parent; + n++; + } + return n; +} + +int main(void) { + node("COM"); + char parent[4], child[4]; + while (EOF != scanf("%3s)%3s\n", parent, child)) { + tree[node(child)].parent = node(parent); + } + size_t orbits = 0; + for (size_t i = 0; tree[i].name[0]; ++i) { + orbits += ancestors(i); + } + printf("%zu\n", orbits); +} -- cgit 1.4.1 rt/file2c?id=87e931de74b522a7c5f8da09ed1c4e6adf86b076'>tree commit diff
Commit message (Collapse)Author
2021-02-16Add missing %U for RFCs in bibsortJune McEnroe
2021-02-15Set XTerm*charClass to select URLsJune McEnroe
By double-clicking.
2021-02-15Add xdimmer to "Using OpenBSD"June McEnroe
2021-02-14Publish "Using OpenBSD"June McEnroe
2021-02-14Set font size back down to 11June McEnroe
I don't know. 11 is definitely big enough, there's something else. Perhaps just how macOS renders everything with a slightly heavier stroke.
2021-02-10Add install targets to binJune McEnroe
Motivated by OpenBSD's default rules not setting copied shell scripts executable. install(1) does.
2021-02-10Colour battery level red when criticalJune McEnroe
2021-02-10Set LC_CTYPE=en_US.UTF-8June McEnroe
As much as I dislike en_US, this is the recommended setting, and the part before the dot doesn't actually do anything.
2021-02-09Add ~/.local/share/man to MANPATHJune McEnroe
I'm not sure this won't screw something up on macOS or elsewhere. Hopefully other man(1) implementations behave the same way around leading/trailing colons in MANPATH.
2021-02-09Fix adding /usr/games to PATHJune McEnroe
I forgot that my own function only takes one parameter oops.
2021-02-09Show battery level while charging, time while dischargingJune McEnroe
Also fix initial sleep calculation when seconds has a leading zero, and limit the length of time left for when it initially says "unknown".
2021-02-09Install sctJune McEnroe
My eyes are so much happier with sct 4500 oh my god.
2021-02-09Show minutes left instead of battery percentageJune McEnroe
2021-02-09Set antialiasing and unhinting globallyJune McEnroe
2021-02-09Open youtube and twitch with mpvJune McEnroe
2021-02-09Add volume control bindings to cwmJune McEnroe
sndioctl is nice and easy.
2021-02-09Use w3m to open other URLsJune McEnroe
2021-02-09Disable mouse mode in xtermJune McEnroe
I do not ever want to use this feature.
2021-02-09Add pbcopy, pbpaste, open dispatch scriptsJune McEnroe
2021-02-09Use flags for pbd client behaviourJune McEnroe
2021-02-08Add macOS-like copy and paste to xtermJune McEnroe
2021-02-08Only update clock script every minuteJune McEnroe
2021-02-08Use 4M- for window resizing in cwmJune McEnroe
2021-02-08Tweak trackpad scaling, mouse accelerationJune McEnroe
This feels more comfortable.
2021-02-08Use xsel in up and add it do install.shJune McEnroe
2021-02-07Swap root window coloursJune McEnroe
2021-02-07Add -X flag to install X stuff on OpenBSDJune McEnroe
2021-02-07Adjust brightness by smaller incrementsJune McEnroe
2021-02-07Fix cwm window cycling, move big by defaultJune McEnroe
2021-02-07Use class names for Foreground, Background, BorderColorJune McEnroe
I'm not really sure what difference this makes, but it seems like the right thing to do to be generic?
2021-02-07Add simple battery status and clock to xsessionJune McEnroe
I love how simple this is.
2021-02-07Set cursor theme and sizeJune McEnroe
2021-02-07Use scrot for up -s if no screencaptureJune McEnroe
Still missing putting the URL in an X selection.
2021-02-07Enable mouse acceleration in XJune McEnroe
2021-02-07Set colours for Xt and cwmJune McEnroe
And increase XTerm internalBorder.
2021-02-07Set urgency on bell in xtermJune McEnroe
2021-02-07Add bindings for brightness controlJune McEnroe
Weirdly the Fn key doesn't change how the F row registers... I wonder if I can do something about that.
2021-02-07Set X key repeat rateJune McEnroe
2021-02-07Bump font size to 12June McEnroe
11 is what I use on macOS, but I feel like my eyes are working harder here.
2021-02-07Fully configure and rebind cwmJune McEnroe
This is sort of a mix of trying to emulate macOS somewhat for my muscle memory and just rebinding some of the cwm defaults to use 4- rather than M-.
2021-02-07Add BintiJune McEnroe
2021-02-07Finish configuring xtermJune McEnroe
2021-02-06Enable tapping, reverse scroll, set scaling in wsconsctlJune McEnroe
2021-02-06Set root window to black on purple snowJune McEnroe
2021-02-06Add xmodmap configurationJune McEnroe
2021-02-06Add initial OpenBSD X configurationJune McEnroe
cwm still needs a lot more rebinding, and I need to actually look at its other options. xterm definitely still needs some configuration, but I at least managed to get it to use a decent looking font. Very happy that OpenBSD includes Luxi Mono, which is what my usual font, Go Mono, is based on anyway. Still missing is xmodmap and such.
2021-02-06Add xterm output to schemeJune McEnroe