public static long Part1(PocketDimension dimension) { if (dimension == null) { throw new ArgumentNullException(nameof(dimension)); } dimension = dimension.Clone(); dimension.Step(6); return(dimension.ActiveCubes); }
private static int CountAfter6Cycles(int dimensions, bool[][] initialSlice) { var pocketDimension = new PocketDimension(dimensions, initialSlice); for (var i = 0; i < 6; i++) { pocketDimension.Step(); } return(pocketDimension.CountActive()); }
public static int Main(string[] args) { if (args == null) { throw new ArgumentNullException(nameof(args)); } string filename = args.Length > 0 ? args[0] : "input.txt"; if (!File.Exists(filename)) { Console.Error.WriteLine($"File not found: {filename}"); return(100); } var dimension = PocketDimension.FromString(File.ReadAllText(filename)); Console.WriteLine(Solver.Part1(dimension)); Console.WriteLine(Solver.Part2(dimension)); return(0); }