結果
| 問題 | 
                            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 | 
ソースコード
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);
		}
	}
}
            
            
            
        
            
msksknkn