Example #1
0
        private static SumCase[] ReadFile(string filepath)
        {
            string[] lines  = File.ReadAllLines(filepath);
            int      cases  = int.Parse(lines[0]);
            var      result = new SumCase[cases];

            for (int caseNo = 1; caseNo < lines.Length; caseNo++)
            {
                var items = lines[caseNo].Split(' ').Select(s => int.Parse(s)).ToArray();

                result[caseNo - 1] = new SumCase {
                    N = items[0], s = items.Where((i, index) => index > 0).ToArray()
                };
            }

            return(result);
        }
Example #2
0
        private static string SolveCase(SumCase gCase)
        {
            var inclusion = new int[20];
            int sumA      = 0;
            int sumB      = 0;

            while (true)
            {
                int  i     = 0;
                bool carry = true;
                while (carry)
                {
                    inclusion[i]++;
                    carry = false;
                    switch (inclusion[i])
                    {
                    case 1:
                        sumA += gCase.s[i];
                        break;

                    case 2:
                        sumB += gCase.s[i];
                        sumA -= gCase.s[i];
                        break;

                    case 3:
                        sumB        -= gCase.s[i];
                        inclusion[i] = 0;
                        i++;
                        carry = true;
                        if (i >= 20)
                        {
                            return("Impossible");
                        }
                        break;
                    }
                }

                if (sumA == sumB)
                {
                    return("\n" + string.Join(" ", gCase.s.Where((value, index) => inclusion[index] == 1).ToArray())
                           + "\n" + string.Join(" ", gCase.s.Where((value, index) => inclusion[index] == 2).ToArray()));
                }
            }
        }