Exemplo n.º 1
0
        public void ProblemOne()
        {
            var used = 0;

            for (int i = 0; i < 128; i++)
            {
                var bin = HexToBin(KnotHasher.Calculate(Input + "-" + i));
                used += bin.Count(i => i == '1');
            }
            Console.WriteLine(used);
        }
Exemplo n.º 2
0
        public void ProblemTwo()
        {
            var memory = new int[128, 128];//row, col

            var binStrings = new List <string>();

            for (var i = 0; i < 128; i++)
            {
                var bin = HexToBin(KnotHasher.Calculate(Input + "-" + i));
                for (var j = 0; j < 128; j++)
                {
                    memory[i, j] = bin[j] == '1' ? -1 : 0;//Mark used bits as -1 instead of 1.
                }
            }

            int region = 1;

            for (var y = 0; y < 128; y++)
            {
                for (var x = 0; x < 128; x++)
                {
                    if (memory[y, x] == -1)
                    {
                        CreateRegion(region, x, y, memory);
                        region++;
                    }
                }
            }

            //var sb = new StringBuilder();
            //for (var y = 0; y < 128; y++)
            //{
            //    for (var x = 0; x < 128; x++)
            //    {
            //        sb.Append(memory[y, x].ToString().PadLeft(4, ' '));
            //        sb.Append(' ');
            //    }
            //    sb.Append("\n");
            //}
            //var test = sb.ToString();

            Console.WriteLine(region - 1);
        }
Exemplo n.º 3
0
        public void ProblemTwo()
        {
            var result = KnotHasher.Calculate(Input);

            Console.WriteLine(result);
        }