結果

問題 No.355 数当てゲーム(2)
ユーザー ぴろず
提出日時 2016-04-02 00:08:01
言語 Java8
(openjdk 1.8.0.191)
結果
AC  
実行時間 164 ms
コード長 1,511 Byte
コンパイル時間 1,643 ms
使用メモリ 41,132 KB
平均クエリ数 38.87
最終ジャッジ日時 2019-07-30 08:12:08

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
01.txt AC 138 ms
37,836 KB
02.txt AC 146 ms
39,044 KB
03.txt AC 147 ms
37,444 KB
04.txt AC 152 ms
39,660 KB
05.txt AC 150 ms
39,340 KB
06.txt AC 138 ms
39,080 KB
07.txt AC 141 ms
39,076 KB
08.txt AC 138 ms
38,880 KB
09.txt AC 150 ms
39,744 KB
10.txt AC 146 ms
40,012 KB
11.txt AC 146 ms
40,848 KB
12.txt AC 140 ms
39,552 KB
13.txt AC 140 ms
39,052 KB
14.txt AC 143 ms
39,376 KB
15.txt AC 136 ms
39,156 KB
16.txt AC 146 ms
40,872 KB
17.txt AC 147 ms
38,876 KB
18.txt AC 149 ms
39,356 KB
19.txt AC 140 ms
38,124 KB
20.txt AC 145 ms
39,516 KB
99_system_test1.txt AC 143 ms
39,064 KB
99_system_test2.txt AC 144 ms
41,128 KB
99_system_test3.txt AC 127 ms
38,928 KB
99_system_test4.txt AC 147 ms
39,048 KB
99_system_test5.txt AC 144 ms
39,400 KB
99_system_test6.txt AC 139 ms
38,892 KB
99_system_test7.txt AC 141 ms
39,264 KB
99_system_test8.txt AC 141 ms
39,400 KB
99_system_test9.txt AC 144 ms
39,924 KB
99_system_test10.txt AC 134 ms
39,516 KB
99_system_test11.txt AC 147 ms
39,024 KB
99_system_test12.txt AC 145 ms
39,340 KB
99_system_test13.txt AC 164 ms
39,528 KB
99_system_test14.txt AC 142 ms
39,732 KB
99_system_test15.txt AC 145 ms
39,152 KB
challenge01.txt AC 127 ms
39,156 KB
system_test1.txt AC 136 ms
38,880 KB
system_test2.txt AC 128 ms
39,732 KB
system_test3.txt AC 156 ms
39,028 KB
system_test4.txt AC 146 ms
38,092 KB
system_test5.txt AC 149 ms
39,332 KB
system_test6.txt AC 145 ms
39,136 KB
system_test7.txt AC 139 ms
37,520 KB
system_test8.txt AC 137 ms
39,144 KB
system_test9.txt AC 141 ms
39,992 KB
system_test10.txt AC 121 ms
39,276 KB
system_test11.txt AC 137 ms
38,876 KB
system_test12.txt AC 146 ms
39,344 KB
system_test13.txt AC 144 ms
40,868 KB
system_test14.txt AC 141 ms
39,364 KB
system_test15.txt AC 142 ms
39,044 KB
system_test16.txt AC 130 ms
41,132 KB
テストケース一括ダウンロード

ソースコード

diff #
package no355;

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	static int[] query = new int[4];
	static int hit = 0;
	static int blow = 0;
	
	static Scanner sc = new Scanner(System.in);
	
	public static void main(String[] args) {
		for(int i=0;i<4;i++) {
			query[i] = i;
		}
		query();
		for(int i=0;i<4;i++) {
			int best = -1;
			int bestj = -1;
			for(int j=0;j<=9;j++) {
				query[i] = j;
				if (!isValid()) continue;
				query();
				if (hit + blow > best) {
					best = hit + blow;
					bestj = j;
				}
			}
			query[i] = bestj;
		}
		Arrays.sort(query);
		do {
			query();
		}while(nextPermutation(query));
	}
	
	public static boolean isValid() {
		boolean[] used = new boolean[10];
		for(int i=0;i<4;i++) {
			int x = query[i];
			if (used[x]) {
				return false;
			}
			used[x] = true;
		}
		return true;
	}
	
	public static void query() {
		StringBuilder sb = new StringBuilder();
		for(int i=0;i<4;i++) {
			if (i > 0) sb.append(' ');
			sb.append(query[i]);
		}
		System.out.println(sb.toString());
		hit = sc.nextInt();
		blow = sc.nextInt();
		if (hit == 4) {
			System.exit(0);
		}
	}
	
	static boolean nextPermutation(int[] p) {
		for(int a=p.length-2;a>=0;--a) {
			if(p[a]<p[a+1]) {
				for(int b=p.length-1;;--b) {
					if(p[b]>p[a]) {
						int t = p[a];
						p[a] = p[b];
						p[b] = t;
						for(++a, b=p.length-1;a<b;++a,--b) {
							t = p[a];
							p[a] = p[b];
							p[b] = t;
						}
						return true;
					}
				}
			}
		}
		return false;
	}
	

}
0