Example #1
0
    static void Main(string[] args)
    {
        var memory = new Dictionary <long, long>();
        var mask   = new Bitmask();

        foreach (string line in File.ReadLines("input.txt"))
        {
            var data = line.Split(" = ");
            if (data[0] == "mask")
            {
                mask = Bitmask.FromString(data[1]);
            }
            else
            {
                var value = int.Parse(data[1]);
                var place = int.Parse(new String(data[0].Where(Char.IsDigit).ToArray()));
                foreach (var modifiedPlace in mask.Apply(place))
                {
                    memory[modifiedPlace] = value;
                }
            }
        }
        long sum = 0L;

        foreach (var entry in memory)
        {
            sum += entry.Value;
        }
        Console.WriteLine(sum);
    }