結果
問題 |
No.205 マージして辞書順最小
|
ユーザー |
![]() |
提出日時 | 2015-05-08 23:19:43 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,018 bytes |
コンパイル時間 | 1,893 ms |
コンパイル使用メモリ | 78,936 KB |
実行使用メモリ | 42,424 KB |
最終ジャッジ日時 | 2024-07-05 20:33:04 |
合計ジャッジ時間 | 5,302 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 WA * 2 |
other | AC * 8 WA * 7 |
ソースコード
import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int sum = 0; ArrayList<Deque<Character>> deques = new ArrayList<>(); for (int i = 0; i < N; i++) { deques.add(new ArrayDeque<Character>()); } for (int i = 0; i < N; i++) { char[] string = sc.next().toCharArray(); sum += string.length; for (int j = 0; j < string.length; j++) { deques.get(i).addLast(string[j]); } } sc.close(); StringBuilder sb = new StringBuilder(); while (sb.length() < sum) { int mini = 0; char minchar = 'z' + 1; for (int i = 0; i < deques.size(); i++) { if (deques.get(i).isEmpty()) { continue; } if (minchar > deques.get(i).peekFirst()) { mini = i; minchar = deques.get(i).peekFirst(); } } sb.append(deques.get(mini).pollFirst()); } System.out.println(sb.toString()); } }