From 4e0ca00936fca466dbd47a0e81aaaefa73bc0afc Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Sun, 3 Dec 2017 02:31:14 -0500 Subject: Day 3 This is fucking awful and I'm angry. --- 2017/input/day03.txt | 1 + 2017/src/bin/day03.rs | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 2017/input/day03.txt create mode 100644 2017/src/bin/day03.rs (limited to '2017') diff --git a/2017/input/day03.txt b/2017/input/day03.txt new file mode 100644 index 0000000..9cf67fc --- /dev/null +++ b/2017/input/day03.txt @@ -0,0 +1 @@ +368078 diff --git a/2017/src/bin/day03.rs b/2017/src/bin/day03.rs new file mode 100644 index 0000000..4f38ac3 --- /dev/null +++ b/2017/src/bin/day03.rs @@ -0,0 +1,57 @@ +use std::io::{self, Read}; + +// 17 16 15 14 13 +// 18 5 4 3 12 +// 19 6 1 2 11 +// 20 7 8 9 10 +// 21 22 23---> ... +// +// 1 R +// 1 U +// 2 L +// 2 D +// 3 R +// 3 U +// 4 L +// 4 D +// 5 R + +fn solve1(input: i32) -> i32 { + let ds = [(1, 0), (0, 1), (-1, 0), (0, -1)]; + + let mut n = 1; + let mut x = 0i32; + let mut y = 0i32; + let mut r = 1; + let mut i = 0; + + for &(dx, dy) in ds.iter().cycle() { + for _ in 0..r { + if n == input { + return x.abs() + y.abs(); + } + + n += 1; + x += dx; + y += dy; + } + r += i % 2; + i += 1; + } + unreachable!() +} + +fn main() { + let mut input = String::new(); + io::stdin().read_to_string(&mut input).unwrap(); + + println!("Part 1: {}", solve1(input.trim().parse().unwrap())); +} + +#[test] +fn part1() { + assert_eq!(0, solve1(1)); + assert_eq!(3, solve1(12)); + assert_eq!(2, solve1(23)); + assert_eq!(31, solve1(1024)); +} -- cgit 1.4.1 /option>
path: root/bin/1sh/exec.c (unfollow)
Commit message (Collapse)Author
2020-01-20Add litterbox to causal.agencyJune McEnroe
2020-01-15Move mksh to Linux-onlyJune McEnroe
Elsewhere I use 1sh.
2020-01-15Remove gpg from install.shJune McEnroe
I don't sign commits anymore so probably don't need it.
2020-01-15Remove git from install.shJune McEnroe
If I have a copy of install.sh it's because I already git cloned this repo... Also I've replaced git with git-lite on FreeBSD since git added a dependency on subversion...
2020-01-14Highlight single-char variables nested in make interpolationsJune McEnroe
e.g. ${LDLIBS_$@}
2020-01-08Set Bl -column tables to 100% widthJune McEnroe
2020-01-08Don't add dt margins to Bl-compact listsJune McEnroe
2020-01-08Use mandoc -T html for about-filterJune McEnroe
This also makes source-filter show mdoc source again and removes the dependency on ttpre entirely. I copied in the inline stylesheet mandoc outputs without -O fragment and added some customizations.
2020-01-05Add The Book of FloraJune McEnroe
Also bump the rating of the previous book, I enjoyed both of them a lot more than the first one.
2020-01-04Replace gr alias with git resetJune McEnroe
I haven't been doing much rebasing in a long time and I've caught myself trying to use gr to do reset.
2020-01-03Remove shotty -c flag from upJune McEnroe
2020-01-03Add Darling Don't CryJune McEnroe
Heard at cafe.
2020-01-01Update license header templates for the new yearJune McEnroe
2019-12-26Add \S to sort inside bracesJune McEnroe
2019-12-23Reformat music.txtJune McEnroe
2019-12-23Rename music.md to music.txtJune McEnroe
2019-12-23Add DO YOU DOUBT ME TRAITORJune McEnroe
2019-12-22Add license header to cgit CSSJune McEnroe
As requested. Funny that its license header capitalizes You.
2019-12-22Add The Book of EttaJune McEnroe
2019-12-21Revert "Add first working version of imbox"June McEnroe
Moved to <https://git.causal.agency/imbox>. This reverts commit 7ff5f3fd826e313ce8353a532bdfa4989dc946dc.
2019-12-21Add first working version of imboxJune McEnroe
2019-12-20Respect mailmap in gl pretty formatJune McEnroe
2019-12-20Set LANG in cgit filtersJune McEnroe
ttpre needs to know about UTF-8 too so it can bold/italic non-ASCII chars.
2019-12-20Source .editrc before applying -v or -eJune McEnroe
Otherwise a bind -v in .editrc will take precedence and overwrite the ^I binding for sh-complete.
2019-12-20Disable signing commitsJune McEnroe
Why did I ever turn this on? This gets me nothing but inconvenience. RIP to all the wasted bytes in my git repos.
2019-12-19Ignore about-filterJune McEnroe
2019-12-19Fix matching make tags with no sourcesJune McEnroe
2019-12-19Avoid matching := assignments as tagsJune McEnroe
2019-12-18Hide line numbers when rendering mdocJune McEnroe
Hack: output an extra <td> after rendering mdoc so that line numbers can be hidden based on there being three. This required splitting source-filter and about-filter since on about pages there is no table.
2019-12-18Customize cgit CSSJune McEnroe
2019-12-18Use :target rather than :focus pseudo-classJune McEnroe
:target persists after you click on something else.
2019-12-18Copy cgit auxiliary binaries properlyJune McEnroe
2019-12-18Add git.causal.agency cgit configJune McEnroe
2019-12-18Bail from hi if input is binaryJune McEnroe
NULs in the input cause an infinite loop in htmlEscape, not to mention regexes obviously not working, etc.
2019-12-16Post "cgit setup"June McEnroe