結果
問題 | No.90 品物の並び替え |
ユーザー | 抹茶アイス |
提出日時 | 2023-07-28 16:30:53 |
言語 | C# (.NET 8.0.203) |
結果 |
TLE
|
実行時間 | - |
コード長 | 2,128 bytes |
コンパイル時間 | 8,619 ms |
コンパイル使用メモリ | 171,992 KB |
実行使用メモリ | 95,008 KB |
最終ジャッジ日時 | 2024-10-06 09:01:58 |
合計ジャッジ時間 | 28,688 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 70 ms
37,352 KB |
testcase_01 | AC | 4,129 ms
51,392 KB |
testcase_02 | AC | 69 ms
33,764 KB |
testcase_03 | AC | 302 ms
36,720 KB |
testcase_04 | AC | 486 ms
36,328 KB |
testcase_05 | AC | 4,886 ms
51,168 KB |
testcase_06 | AC | 3,231 ms
51,808 KB |
testcase_07 | AC | 125 ms
34,688 KB |
testcase_08 | AC | 73 ms
33,696 KB |
testcase_09 | TLE | - |
コンパイルメッセージ
復元対象のプロジェクトを決定しています... /home/judge/data/code/main.csproj を復元しました (88 ms)。 MSBuild のバージョン 17.9.6+a4ecab324 (.NET) main -> /home/judge/data/code/bin/Release/net8.0/main.dll main -> /home/judge/data/code/bin/Release/net8.0/publish/
ソースコード
using System; using System.Collections.Generic; using System.Linq; namespace yukicoder { public class Program { public static void Main() { var n = Console.ReadLine().Split(' ').Select(value => int.Parse(value)).ToArray(); var S = new string[n[1]][]; for (var i = 0; i < n[1]; i++) { S[i] = Console.ReadLine().Split(' '); } var A = AllPermutation(Enumerable.Range(0, n[0]).ToArray()); var m = 0; foreach (var aa in A) { var a = String.Join("", aa); var k = 0; foreach (var s in S) { if (a.IndexOf(s[0]) < a.IndexOf(s[1])) { k += int.Parse(s[2]); } } m = Math.Max(m, k); } Console.WriteLine(m); } static List<T[]> AllPermutation<T>(params T[] array) where T : IComparable { var a = new List<T>(array).ToArray(); var res = new List<T[]>(); res.Add(new List<T>(a).ToArray()); var n = a.Length; var next = true; while (next) { next = false; // 1 int i; for (i = n - 2; i >= 0; i--) { if (a[i].CompareTo(a[i + 1]) < 0) break; } // 2 if (i < 0) break; // 3 var j = n; do { j--; } while (a[i].CompareTo(a[j]) > 0); if (a[i].CompareTo(a[j]) < 0) { // 4 var tmp = a[i]; a[i] = a[j]; a[j] = tmp; Array.Reverse(a, i + 1, n - i - 1); res.Add(new List<T>(a).ToArray()); next = true; } } return res; } } }