結果
問題 |
No.5 数字のブロック
|
ユーザー |
|
提出日時 | 2019-01-09 10:59:56 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 309 ms / 5,000 ms |
コード長 | 1,522 bytes |
コンパイル時間 | 803 ms |
コンパイル使用メモリ | 108,924 KB |
実行使用メモリ | 27,108 KB |
最終ジャッジ日時 | 2024-11-18 12:48:00 |
合計ジャッジ時間 | 4,550 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 34 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System; namespace No005_数字のブロック { class Program { static private int l; static private int n; static private int max = 0; static public void Main(string[] args) { l = int.Parse(Console.ReadLine()); n = int.Parse(Console.ReadLine()); string[] input = Console.ReadLine().Split(' '); int[] w = new int[n]; for (int i = 0; i < n; i++) w[i] = int.Parse(input[i]); Sort(ref w); for (int i = 0; i < n; i++) Combination(w, i, 0, 0); Console.WriteLine(max); } static private void Combination(int[] data, int level, int sum, int count) { if (level < data.Length) { sum += data[level]; if (sum <= l) { count++; Combination(data, level + 1, sum, count); } } if (max < count) max = count; } static private void Sort(ref int[] data) { for (int i = 0; i < data.Length - 1; i++) for (int j = i; j < data.Length; j++) if (data[i] > data[j]) Swap(ref data[i], ref data[j]); } static private void Swap(ref int a, ref int b) { int temp = a; a = b; b = temp; } } }