コード例 #1
0
ファイル: FindSumInArray.cs プロジェクト: slapshott/Homework
        static void Main()
        {
            // Get Sum
            int inputSum = int.Parse(Console.ReadLine());

            // standard input format = size + fill array
            int sizeN = int.Parse(Console.ReadLine());

            //Get Array
            int[] inputArray = new int[sizeN];

            for (int i = 0; i < sizeN; i++)
            {
                inputArray[i] = int.Parse(Console.ReadLine());
            }

            // Get sub sequences
            var findTheSum =

                // Divide into subsequences !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                from startAt in Enumerable.Range(0, inputArray.Length)
                from length in Enumerable.Range(1, inputArray.Length - startAt)

                let SubSequence = inputArray.Skip(startAt).Take(length)
                                  // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                                  orderby SubSequence.Count() descending
                                  //filter
                                      where SubSequence.Sum() == inputSum
                                  //return subsequences
                                  select SubSequence;

            var ResultSubseq = findTheSum.First();


            foreach (var value in ResultSubseq)
            {
                Console.Write(value.ToString() + " ");
            }

            Console.Write(ResultSubseq.Sum());
        }