Mercurial > hg > aoc
view 2017/day01.d @ 3:b5533de6ff5b
move all app.d's to top level
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Thu, 07 Dec 2017 11:44:52 -0500 |
parents | 2017/01/app.d@0fa6cd63af21 |
children |
line wrap: on
line source
import std.getopt; import std.stdio; import std.conv: to; import std.traits: isNumeric; numType day1(numType)(string input, size_t stride = 0) if(isNumeric!numType) { auto n = input.length; if(stride == 0) { stride = n/2; } int sum = 0; foreach(idx, c; input) { auto prev = input[(idx + stride)%n]; if (c == prev) { sum += to!(numType)(c - '0'); } } return sum; } void main(string[] args) { string input; auto opts = getopt( args, "input|i", "Input captcha to process", &input ); if (opts.helpWanted) { defaultGetoptPrinter("Day 1 of AoC", opts.options); } auto result1 = day1!(int)(input, 1); auto result2 = day1!(int)(input); writeln(result1); writeln(result2); }