結果
問題 | No.90 品物の並び替え |
ユーザー | tsunabit |
提出日時 | 2020-02-04 22:34:28 |
言語 | Java21 (openjdk 21) |
結果 |
AC
|
実行時間 | 1,088 ms / 5,000 ms |
コード長 | 1,645 bytes |
コンパイル時間 | 3,901 ms |
コンパイル使用メモリ | 80,356 KB |
実行使用メモリ | 64,440 KB |
最終ジャッジ日時 | 2024-09-21 07:46:58 |
合計ジャッジ時間 | 8,729 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 176 ms
54,820 KB |
testcase_01 | AC | 461 ms
64,440 KB |
testcase_02 | AC | 174 ms
55,136 KB |
testcase_03 | AC | 263 ms
60,892 KB |
testcase_04 | AC | 270 ms
60,784 KB |
testcase_05 | AC | 475 ms
64,284 KB |
testcase_06 | AC | 448 ms
64,168 KB |
testcase_07 | AC | 231 ms
55,252 KB |
testcase_08 | AC | 177 ms
54,944 KB |
testcase_09 | AC | 1,088 ms
63,324 KB |
ソースコード
import java.util.*; import java.io.*; import java.math.*; public class No90 { // public static int[] ary; public static String[] ary; public static int MAX = 0; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int y = 3 * m; // int[] tmp = new int[y]; ary = new String[y]; for(int i = 0; i < y; i++) { // tmp[i] = sc.nextInt(); // ary[i] = sc.nextInt(); ary[i] = sc.next(); } // 商品の文字列作成 String str = ""; for(int i = 0; i < n; i++) { str = str + i; } // System.out.println("str = " + str); permutation(str, ""); System.out.println(MAX); // for(int i = 0; i < y; i=i+3) { // System.out.print(ary[i] + " " + ary[i+1] + " " + ary[i+2]); // System.out.println(""); // } } public static void permutation(String q, String ans){ // Base Case if(q.length() <= 1) { // System.out.println(ans + q); String str = ans + q; // System.out.println("str = " + str); int total = 0; for(int i = 0; i < ary.length; i=i+3) { String it1 = ary[i]; String it2 = ary[i+1]; int sc = Integer.parseInt(ary[i+2]); // System.out.println(ary[i] + "のindex = " + str.indexOf(it1)); // System.out.println(ary[i+1] + "のindex = " + str.indexOf(it2)); if(str.indexOf(it1) < str.indexOf(it2)) { total += sc; } } // System.out.println("total = " + total); MAX = MAX < total? total : MAX; } // General Case else { for (int i = 0; i < q.length(); i++) { permutation(q.substring(0, i) + q.substring(i + 1), ans + q.charAt(i)); } } } }