結果
| 問題 |
No.3323 岩井星式ジャンケン
|
| コンテスト | |
| ユーザー |
msksknkn
|
| 提出日時 | 2025-11-01 15:32:46 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,467 bytes |
| コンパイル時間 | 10,201 ms |
| コンパイル使用メモリ | 81,140 KB |
| 実行使用メモリ | 65,248 KB |
| 最終ジャッジ日時 | 2025-11-01 15:33:16 |
| 合計ジャッジ時間 | 21,091 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 20 WA * 1 TLE * 2 -- * 3 |
ソースコード
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, 10));
//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, 10);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