Mercurial > hg > aoc
view 2017/day17.d @ 22:4e7e7835f1db
day 17
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Mon, 18 Dec 2017 16:42:47 -0500 |
parents | |
children |
line wrap: on
line source
import std.stdio; import std.algorithm: find; import std.conv: to; auto getBuffer(ulong skip) { ulong[] circ = [0]; ulong pos = 0; foreach(y; 1..2018) { pos = (pos + skip) % circ.length + 1; circ = circ[0..pos] ~ y ~ circ[pos..$]; } return circ; } auto getPastZero(ulong skip) { ulong pos = 0; ulong pastzero = 0; foreach(length; 1..50_000_000) { pos = (pos + skip) % length + 1; if (pos == 1) { pastzero = length; } } return pastzero; } void main(string[] args) { auto circ = getBuffer(args[1].to!ulong); writeln(find(circ, 2017)[1]); writeln(getPastZero(args[1].to!ulong)); }