using System; using System.Collections.Generic; using System.Linq; class Program { //Constで定義すると警告が出るので、変数として定義 static string InputPattern = "Input3"; static List GetInputList() { var WillReturn = new List(); if (InputPattern == "Input1") { WillReturn.Add("16"); WillReturn.Add("3"); WillReturn.Add("10 5 7"); } else if (InputPattern == "Input2") { WillReturn.Add("100"); WillReturn.Add("10"); WillReturn.Add("14 85 77 26 50 45 66 79 10 3"); } else { string wkStr; while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr); } return WillReturn; } static void Main() { List InputList = GetInputList(); int L = int.Parse(InputList[0]); int[] WidthArr = InputList[2].Split(' ').Select(X => int.Parse(X)).ToArray(); //貪欲法を使う Array.Sort(WidthArr); int AnswerCnt = 0; int WidthSum = 0; for (int I = 0; I <= WidthArr.GetUpperBound(0); I++) { if (WidthSum + WidthArr[I] <= L) { WidthSum += WidthArr[I]; AnswerCnt++; } else break; } Console.WriteLine(AnswerCnt); } }