結果
問題 | No.90 品物の並び替え |
ユーザー | 抹茶アイス |
提出日時 | 2023-07-28 11:10:08 |
言語 | C# (.NET 8.0.203) |
結果 |
TLE
|
実行時間 | - |
コード長 | 2,108 bytes |
コンパイル時間 | 9,755 ms |
コンパイル使用メモリ | 168,040 KB |
実行使用メモリ | 92,184 KB |
最終ジャッジ日時 | 2024-10-05 23:40:22 |
合計ジャッジ時間 | 30,111 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 79 ms
37,248 KB |
testcase_01 | AC | 4,442 ms
50,644 KB |
testcase_02 | AC | 79 ms
33,664 KB |
testcase_03 | AC | 327 ms
36,712 KB |
testcase_04 | AC | 526 ms
36,844 KB |
testcase_05 | TLE | - |
testcase_06 | AC | 3,592 ms
51,032 KB |
testcase_07 | AC | 129 ms
34,972 KB |
testcase_08 | AC | 78 ms
33,512 KB |
testcase_09 | TLE | - |
コンパイルメッセージ
復元対象のプロジェクトを決定しています... /home/judge/data/code/main.csproj を復元しました (94 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 int[n[1]][]; for(var i= 0; i < n[1]; i++) { S[i] = Console.ReadLine().Split(' ').Select(value => int.Parse(value)).ToArray(); } 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].ToString())< a.IndexOf(s[1].ToString())) { k += 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; } } }