Пример #1
0
        public void NumberToRemove()
        {
            Motes motes = new Motes();

            Assert.AreEqual(2, motes.NumberToRemove(new int[] { 1, 2, 3 }, new int[] { -1, 1, -1 }));
            Assert.AreEqual(1, motes.NumberToRemove(new int[] { 1, 2, 3 }, new int[] { 0, 1, -1 }));
        }
Пример #2
0
        static void Main(string[] args)
        {
            string inputname = args[0];
            string outputname = args[1];

            string[] lines = File.ReadAllLines(inputname);

            int ncases = int.Parse(lines[0]);
            int nline = 0;
            IList<string> results = new List<string>();
            Motes motes = new Motes();

            for (int k = 0; k < ncases; k++)
            {
                System.Console.WriteLine(string.Format("Solving Case #{0}", k + 1));
                nline++;
                string[] numbers = lines[nline].Split(' ');
                int mote = int.Parse(numbers[0]);
                nline++;
                numbers = lines[nline].Split(' ');
                List<int> nums = new List<int>();

                foreach (var number in numbers)
                    nums.Add(int.Parse(number));

                nums.Sort();

                var result = motes.MovesToApply(mote, nums);
                results.Add(string.Format("Case #{0}: {1}", k + 1, result));
            }

            File.WriteAllLines(outputname, results.ToArray());
        }
Пример #3
0
        public void NumberToAdd()
        {
            Motes motes = new Motes();

            Assert.AreEqual(0, motes.NumberToAdd(10, new int[] { 9, 18 }));
            Assert.AreEqual(18, motes.NumberToAdd(10, new int[] { 9, 20 }));
            Assert.AreEqual(36, motes.NumberToAdd(10, new int[] { 9, 18, 37 }));
        }
Пример #4
0
        public void OneSmallerMoteSolvedNoMove()
        {
            Motes motes = new Motes();

            Assert.AreEqual(0, motes.MovesToApply(10, new int[] { 9 }));
        }
Пример #5
0
        public void OneSmallerMoteCanBeSolved()
        {
            Motes motes = new Motes();

            Assert.IsTrue(motes.CanBeSolved(10, new int[] { 9 }));
        }
Пример #6
0
        public void OneEqualMoteCannotBeSolved()
        {
            Motes motes = new Motes();

            Assert.IsFalse(motes.CanBeSolved(10, new int[] { 10 }));
        }
Пример #7
0
        public void OneEqualGreaterCanBeSolvedWithOneMove()
        {
            Motes motes = new Motes();

            Assert.AreEqual(1, motes.MovesToApply(10, new int[] { 11 }));
        }
Пример #8
0
        public void GoogleSmallSample1()
        {
            Motes motes = new Motes();

            Assert.AreEqual(0, motes.MovesToApply(3, new int[] { 1, 2, 4, 5, 6, 7, 8, 9 }));
        }
Пример #9
0
        public void GoogleSample3()
        {
            Motes motes = new Motes();

            Assert.AreEqual(2, motes.MovesToApply(10, new int[] { 9, 20, 25, 100 }));
        }
Пример #10
0
        public void GoogleSample4()
        {
            Motes motes = new Motes();

            Assert.AreEqual(4, motes.MovesToApply(1, new int[] { 1, 1, 1, 1 }));
        }
Пример #11
0
        public void GoogleSample2()
        {
            Motes motes = new Motes();

            Assert.AreEqual(1, motes.MovesToApply(2, new int[] { 1, 1, 2, 6 }));
        }
Пример #12
0
        public void TwoMotesWithZeroMove()
        {
            Motes motes = new Motes();

            Assert.AreEqual(0, motes.MovesToApply(10, new int[] { 9, 18 }));
        }
Пример #13
0
        public void TwoMotesThatCanBeSolved()
        {
            Motes motes = new Motes();

            Assert.IsTrue(motes.CanBeSolved(10, new int[] { 9, 18 }));
        }
Пример #14
0
        public void TwoMotesThanCannotBeSolved()
        {
            Motes motes = new Motes();

            Assert.IsFalse(motes.CanBeSolved(10, new int[] { 9, 19 }));
        }
Пример #15
0
        public void ThreeMotesThanCanBeSolved()
        {
            Motes motes = new Motes();

            Assert.IsTrue(motes.CanBeSolved(10, new int[] { 9, 18, 36 }));
        }