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()); }
public void OneEqualGreaterCanBeSolvedWithOneMove() { Motes motes = new Motes(); Assert.AreEqual(1, motes.MovesToApply(10, new int[] { 11 })); }
public void OneSmallerMoteSolvedNoMove() { Motes motes = new Motes(); Assert.AreEqual(0, motes.MovesToApply(10, new int[] { 9 })); }
public void GoogleSmallSample1() { Motes motes = new Motes(); Assert.AreEqual(0, motes.MovesToApply(3, new int[] { 1, 2, 4, 5, 6, 7, 8, 9 })); }
public void GoogleSample4() { Motes motes = new Motes(); Assert.AreEqual(4, motes.MovesToApply(1, new int[] { 1, 1, 1, 1 })); }
public void GoogleSample3() { Motes motes = new Motes(); Assert.AreEqual(2, motes.MovesToApply(10, new int[] { 9, 20, 25, 100 })); }
public void GoogleSample2() { Motes motes = new Motes(); Assert.AreEqual(1, motes.MovesToApply(2, new int[] { 1, 1, 2, 6 })); }
public void TwoMotesWithZeroMove() { Motes motes = new Motes(); Assert.AreEqual(0, motes.MovesToApply(10, new int[] { 9, 18 })); }