結果
| 問題 |
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;
}
}
}