結果
問題 | No.380 悪の台本 |
ユーザー | neko_the_shadow |
提出日時 | 2019-05-17 16:54:13 |
言語 | Java21 (openjdk 21) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,520 bytes |
コンパイル時間 | 2,274 ms |
コンパイル使用メモリ | 77,876 KB |
実行使用メモリ | 62,112 KB |
最終ジャッジ日時 | 2024-09-17 05:57:28 |
合計ジャッジ時間 | 4,644 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 53 ms
50,052 KB |
testcase_01 | WA | - |
testcase_02 | AC | 55 ms
50,240 KB |
testcase_03 | AC | 55 ms
50,136 KB |
testcase_04 | AC | 199 ms
53,024 KB |
testcase_05 | AC | 257 ms
57,644 KB |
testcase_06 | AC | 261 ms
57,408 KB |
testcase_07 | AC | 587 ms
62,112 KB |
testcase_08 | AC | 101 ms
51,568 KB |
testcase_09 | AC | 203 ms
53,484 KB |
ソースコード
package _0380; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashSet; import java.util.Set; public class Main { public static void main(String[] args) throws IOException { Set<Character> letters = new HashSet<>(); for (char ch = 'a'; ch <= 'z'; ch++) letters.add(ch); for (char ch = 'A'; ch <= 'Z'; ch++) letters.add(ch); for (char ch = '0'; ch <= '9'; ch++) letters.add(ch); BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); String line; while ((line = stdin.readLine()) != null) { String ans = isOK(line, letters) ? "CORRECT (maybe)" : "WRONG!"; System.out.println(ans); } } public static boolean isOK(String line, Set<Character> letters) { // 1行を最大2つに分割。分割できない場合は異常。 String[] tokens = line.split(" ", 2); if (tokens.length != 2) { return false; } // 2つに分解した行のうち、セリフ部分について、記号を取り除く。 String who = tokens[0]; String rawSpeech = tokens[1]; StringBuilder sb = new StringBuilder(); for (char c : rawSpeech.toCharArray()) { if (letters.contains(c)) { sb.append(Character.toLowerCase(c)); } } String speech = sb.toString(); // digiの全てのセリフはnyoか,nyoの末尾に記号を1~3文字つけたもので終わる // petitの全てのセリフはnyuか,nyuの末尾に記号を1~3文字つけたもので終わる // gemaの全てのセリフはgemaか,gemaの末尾に記号を1~3文字つけたもので終わる // piyoの全てのセリフはpyoか,pyoの末尾に記号を1~3文字つけたもので終わる if (who.equals("digi")) return speech.endsWith("nyo"); if (who.equals("petit")) return speech.endsWith("nyu"); if (who.equals("gema")) return speech.endsWith("gema"); if (who.equals("piyo")) return speech.endsWith("pyo"); // rabiの全てのセリフは記号でない文字を少なくても1文字含む // 変数speechは記号文字はすべて削除されている。 if (who.equals("rabi")) return !speech.isEmpty(); // だれともマッチしなかった。 return false; } }