結果

問題 No.437 cwwゲーム
ユーザー uafr_cs
提出日時 2016-10-28 22:33:32
言語 Java8
(openjdk 1.8.0.222)
結果
AC  
実行時間 225 ms
コード長 1,224 Byte
コンパイル時間 1,570 ms
使用メモリ 25,716 KB
最終ジャッジ日時 2019-10-07 05:38:49

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
00_sample01.txt AC 216 ms
25,628 KB
00_sample02.txt AC 217 ms
25,644 KB
00_sample03.txt AC 207 ms
25,628 KB
01_hand01.txt AC 208 ms
25,624 KB
01_hand02.txt AC 209 ms
25,628 KB
01_hand03.txt AC 219 ms
25,692 KB
01_hand04.txt AC 221 ms
25,692 KB
01_hand05.txt AC 224 ms
25,704 KB
01_hand06.txt AC 222 ms
25,692 KB
01_hand07.txt AC 224 ms
25,696 KB
01_hand08.txt AC 225 ms
25,700 KB
01_hand09.txt AC 220 ms
25,700 KB
01_hand10.txt AC 222 ms
25,716 KB
01_hand11.txt AC 218 ms
25,680 KB
01_hand12.txt AC 214 ms
25,644 KB
01_hand13.txt AC 225 ms
25,700 KB
01_hand14.txt AC 216 ms
25,684 KB
01_hand15.txt AC 208 ms
25,632 KB
99_system_test1.txt AC 211 ms
25,652 KB
challenge01.txt AC 206 ms
25,628 KB
challenge02.txt AC 205 ms
25,632 KB
in01.txt AC 210 ms
25,628 KB
in02.txt AC 211 ms
25,628 KB
in03.txt AC 214 ms
25,664 KB
in04.txt AC 208 ms
25,628 KB
in05.txt AC 220 ms
25,684 KB
in06.txt AC 217 ms
25,680 KB
in07.txt AC 213 ms
25,648 KB
in08.txt AC 208 ms
25,628 KB
in09.txt AC 203 ms
25,628 KB
in10.txt AC 203 ms
25,628 KB
in11.txt AC 205 ms
25,632 KB
in12.txt AC 209 ms
25,624 KB
in13.txt AC 205 ms
25,636 KB
in14.txt AC 206 ms
25,636 KB
in15.txt AC 213 ms
25,648 KB
in16.txt AC 211 ms
25,636 KB
in17.txt AC 207 ms
25,632 KB
in18.txt AC 209 ms
25,640 KB
in19.txt AC 206 ms
25,632 KB
in20.txt AC 208 ms
25,632 KB
system_test1.txt AC 213 ms
25,652 KB
system_test2.txt AC 211 ms
25,632 KB
system_test3.txt AC 212 ms
25,644 KB
テストケース一括ダウンロード

ソースコード

diff #
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;

public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		final char[] chs = sc.next().toCharArray();
		final int len = chs.length;
		final int size = 1 << len;
		
		int[] cost = new int[size];
		
		for(int bit = 0; bit < size; bit++){
			for(int i = 0; i < len; i++){
				if((bit & (1 << i)) != 0){ continue; }
				if(chs[i] == '0'){ continue; }
				
				for(int j = i + 1; j < len; j++){
					if((bit & (1 << j)) != 0){ continue; }
					if(chs[j] == chs[i]){ continue; }
					
					for(int k = j + 1; k < len; k++){
						if((bit & (1 << k)) != 0){ continue;}
						if(chs[k] != chs[j]){ continue; }
						
						final int next_bit = bit | (1 << i) | (1 << j) | (1 << k);
						final int next_cost = (chs[i] - '0') * 100 + (chs[j] - '0') * 10 + (chs[k] - '0');
						
						cost[next_bit] = Math.max(cost[next_bit], cost[bit] + next_cost);
					}
				}
			}
		}
		
		System.out.println(Arrays.stream(cost).max().getAsInt());
	}

}
0