結果

問題 No.3323 岩井星式ジャンケン
コンテスト
ユーザー msksknkn
提出日時 2025-11-01 15:28:13
言語 Java
(openjdk 23)
結果
WA  
実行時間 -
コード長 1,465 bytes
コンパイル時間 3,608 ms
コンパイル使用メモリ 81,268 KB
実行使用メモリ 57,400 KB
最終ジャッジ日時 2025-11-01 15:28:29
合計ジャッジ時間 13,233 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 21 WA * 5
権限があれば一括ダウンロードができます

ソースコード

diff #

package q5;
import java.util.*;

public class Main {
	public static ArrayList<String> janken = new ArrayList<>();
	public static StringBuilder sb = new StringBuilder();
	public static String h = "GCP";
	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		String[] s = new String[n];
		for(int i = 0;i < n;i++) {
			s[i] = sc.next();
		}
		makeJanken(0,Math.min(m, 5));
		//System.out.println(janken);
		for(String t:janken) {
			boolean[] win = new boolean[n];
			boolean ok = true;
			int winNum = 0;
			for(int j = 0;j < t.length();j++) {
				for(int i = 0;i < n;i++) {
					int hand = s[i].charAt(j);
					for(int k = 0;k < 3;k++) {
						if(hand == h.charAt(k))hand = k;
					}
					if(win[i])continue;
					if(!win[i] && h.charAt((hand + 1) % 3) == t.charAt(j))ok = false;
					if(!win[i] && h.charAt((hand + 2) % 3) == t.charAt(j)) {
						win[i] = true;
						winNum++;
					}
				}
			}if(ok && winNum == n) {
				System.out.print(t);
				for(int i = Math.min(m, 5);i < m;i++) {
					System.out.print("G");
				}return;
			}
		}
		System.out.print(-1);
	}public static void makeJanken(int ind,int end) {
		if(ind == end) {
			//System.out.println(sb);
			janken.add(sb.toString());
			return;
		}for(int i = 0;i < 3;i++) {
			sb.append(h.charAt(i));
			makeJanken(ind + 1,end);
			sb.deleteCharAt(sb.length() - 1);
		}
	}
}
0