結果
問題 | No.517 壊れたアクセサリー |
ユーザー |
|
提出日時 | 2017-05-28 22:13:29 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 144 ms / 2,000 ms |
コード長 | 1,616 bytes |
コンパイル時間 | 3,978 ms |
コンパイル使用メモリ | 79,524 KB |
実行使用メモリ | 42,084 KB |
最終ジャッジ日時 | 2024-09-21 15:31:52 |
合計ジャッジ時間 | 7,484 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 15 |
ソースコード
import java.io.*;import java.util.*;public class Main_yukicoder517 {private static Scanner sc;private static Printer pr;private static void solve() {int n = sc.nextInt();char[][] a = new char[n][];for (int i = 0; i < n; i++) {a[i] = sc.next().toCharArray();}int m = sc.nextInt();char[][] b = new char[m][];for (int i = 0; i < m; i++) {b[i] = sc.next().toCharArray();}int[] next = new int[26];Arrays.fill(next, -2);for (char[] s : a) {for (int i = 0, size = s.length - 1; i < size; i++) {next[s[i] - 'A'] = s[i + 1] - 'A';}next[s[s.length - 1] - 'A'] = -1;}for (char[] s : b) {for (int i = 0, size = s.length - 1; i < size; i++) {next[s[i] - 'A'] = s[i + 1] - 'A';}}Set<Integer> hs = new HashSet<>();int cnt = 0;for (int i = 0, size = next.length; i < size; i++) {if (next[i] == -1) {cnt++;}if (next[i] != -2) {hs.add(next[i]);}}if (cnt > 1) {pr.println("-1");return;}for (int i = 0, size = next.length; i < size; i++) {if (next[i] != -2 && !hs.contains(i)) {StringBuilder ret = new StringBuilder();int j = i;while (j >= 0) {ret.append((char)(j + 'A'));j = next[j];}pr.println(ret);break;}}}// ---------------------------------------------------public static void main(String[] args) {sc = new Scanner(System.in);pr = new Printer(System.out);solve();pr.close();sc.close();}private static class Printer extends PrintWriter {Printer(PrintStream out) {super(out);}}}