using System; using System.Diagnostics; namespace CodeIq { internal class Program { /// ///Ellenは数字のブロックで遊ぼうとしている。 /// ///数字が書かれているブロックはそれぞれ高さ1で幅はWi である。 ///それらのブロックを高さ1,幅Lの大きな箱の中に入れる。  /// ///Ellenは大きな箱にどれだけブロックがたくさん入るか気になったが。 ///組み合わせがたくさんあって大変なことに気づいて、すぐに夜になってしまいそうである。 /// ///あなたは、代わりに大きな箱に最大何個のブロックが入るかを求めてください。 /// private static void Main() { // パラメータ取得 var line1 = Console.ReadLine(); if( string.IsNullOrEmpty( line1 ) ) return; var line2 = Console.ReadLine(); if( string.IsNullOrEmpty( line2 ) ) return; var line3 = Console.ReadLine(); if( string.IsNullOrEmpty( line3 ) ) return; var l = int.Parse( line1 ); var boxesData = line3.Split( ' ' ); var boxes = new int[boxesData.Length]; // 箱を小さい順にソートした上で計算する // ※箱を順に入れていき、入らなくなった時点でもうそれ以上入らない for( var i = 0; i < boxesData.Length; i++ ) boxes[i] = int.Parse( boxesData[i] ); Array.Sort( boxes ); var inputCount = 0; var inputLength = 0; for( inputCount = 0; inputCount < boxesData.Length; inputCount ++ ) { inputLength += boxes[inputCount]; if( inputLength > l ) break; } Debug.Print( inputCount.ToString() ); Console.WriteLine( inputCount ); } } }