結果
| 問題 |
No.233 めぐるはめぐる (3)
|
| コンテスト | |
| ユーザー |
tenten
|
| 提出日時 | 2020-10-27 19:36:25 |
| 言語 | Java (openjdk 23) |
| 結果 |
TLE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 2,024 bytes |
| コンパイル時間 | 2,246 ms |
| コンパイル使用メモリ | 78,764 KB |
| 実行使用メモリ | 83,644 KB |
| 最終ジャッジ日時 | 2024-07-21 22:00:02 |
| 合計ジャッジ時間 | 14,046 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 7 TLE * 4 |
ソースコード
import java.util.*;
public class Main {
static char[] boin = new char[]{'i', 'a', 'a', 'e', 'u', 'u'};
static char[] shiin = new char[]{'n', 'b', 'm', 'g', 'r'};
static final int MAX = boin.length + shiin.length;
static HashSet<String> ngs = new HashSet<>();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
ngs.add(sc.next());
}
boolean[] bUsed = new boolean[boin.length];
boolean[] sUsed = new boolean[shiin.length];
addBoin(new char[MAX], bUsed, sUsed, 0, false);
addShiin(new char[MAX], bUsed, sUsed, 0, true);
System.out.println("NO");
}
static void addBoin(char[] arr, boolean[] bUsed, boolean[] sUsed, int count, boolean remain) {
if (count == MAX) {
if (!ngs.contains(new String(arr))) {
System.out.println(arr);
System.exit(0);
}
return;
}
for (int i = 0; i < boin.length; i++) {
if (bUsed[i]) {
continue;
}
bUsed[i] = true;
arr[count] = boin[i];
addShiin(arr, bUsed, sUsed, count + 1, remain);
if (remain) {
addBoin(arr, bUsed, sUsed, count + 1, false);
}
bUsed[i] = false;
}
}
static void addShiin(char[] arr, boolean[] bUsed, boolean[] sUsed, int count, boolean remain) {
if (count == MAX) {
if (!ngs.contains(new String(arr))) {
System.out.println(arr);
System.exit(0);
}
return;
}
for (int i = 0; i < shiin.length; i++) {
if (sUsed[i]) {
continue;
}
sUsed[i] = true;
arr[count] = shiin[i];
addBoin(arr, bUsed, sUsed, count + 1, remain);
sUsed[i] = false;
}
}
}
tenten