結果
問題 | No.90 品物の並び替え |
ユーザー |
|
提出日時 | 2020-02-04 22:34:28 |
言語 | Java (openjdk 23) |
結果 |
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 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 9 |
ソースコード
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 Caseif(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 Caseelse {for (int i = 0; i < q.length(); i++) {permutation(q.substring(0, i) + q.substring(i + 1), ans + q.charAt(i));}}}}