ben
/
aoc
1
0
Fork 0
aoc/AOC2015/Day20.cs

48 lines
1.1 KiB
C#
Raw Permalink Normal View History

2022-12-03 05:55:49 +00:00
namespace AOC2015;
/// <summary>
2022-12-03 05:41:38 +00:00
/// Day 20: <a href="https://adventofcode.com/2015/day/20"/>
/// </summary>
2023-09-20 18:38:58 +00:00
public sealed class Day20() : Day(2015, 20, "Infinite Elves and Infinite Houses")
{
2023-09-20 20:57:52 +00:00
private int _input;
2023-12-01 07:30:47 +00:00
public override void ProcessInput() =>
2023-09-20 20:57:52 +00:00
_input = int.Parse(Input.First());
public override object Part1()
{
var houses = new int[1_000_000];
for (var i = 1; i < houses.Length; i++)
{
for (var j = i; j < houses.Length; j += i)
{
houses[j] += i * 10;
}
}
for (var i = 1; i < houses.Length; i++)
{
if (houses[i] >= _input) return i;
}
return "";
}
2023-09-20 20:57:52 +00:00
public override object Part2()
{
var min = int.MaxValue;
var houses = new int[1_000_000];
for (var i = 1; i < houses.Length; i++)
{
for (int j = i, c = 0; j < houses.Length && c < 50; j += i, c++)
{
if ((houses[j] += i * 11) >= _input)
min = Math.Min(min, j);
}
}
2023-09-20 20:57:52 +00:00
return min;
}
}