Submission #71329018
Source Code Expand
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
FastScanner in = new FastScanner();
PrintWriter out = new PrintWriter(System.out);
try {
String tLine = in.next();
if (tLine == null) return;
int T = Integer.parseInt(tLine);
while (T-- > 0) {
String nLine = in.next();
if (nLine == null) break;
int N = Integer.parseInt(nLine);
String[] s = new String[N];
for (int i = 0; i < N; i++) {
s[i] = in.next();
}
Arrays.sort(s, (s1, s2) -> {
int len1 = s1.length();
int len2 = s2.length();
int total = len1 + len2;
for (int k = 0; k < total; k++) {
char c1 = (k < len1) ? s1.charAt(k) : s2.charAt(k - len1);
char c2 = (k < len2) ? s2.charAt(k) : s1.charAt(k - len2);
if (c1 != c2) return c1 - c2;
}
return 0;
});
boolean duplicateFound = false;
for (int i = 0; i < N - 1; i++) {
if (isCommutative(s[i], s[i+1])) {
duplicateFound = true;
break;
}
}
if (!duplicateFound) {
String temp = s[N - 1];
s[N - 1] = s[N - 2];
s[N - 2] = temp;
}
StringBuilder sb = new StringBuilder();
for (String str : s) sb.append(str);
out.println(sb);
}
} catch (Exception e) {
}
out.flush();
}
// Optimized helper to check s1 + s2 == s2 + s1 without creating new Strings
private static boolean isCommutative(String s1, String s2) {
int l1 = s1.length();
int l2 = s2.length();
int total = l1 + l2;
for (int k = 0; k < total; k++) {
char c1 = (k < l1) ? s1.charAt(k) : s2.charAt(k - l1);
char c2 = (k < l2) ? s2.charAt(k) : s1.charAt(k - l2);
if (c1 != c2) return false;
}
return true;
}
static class FastScanner {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer("");
String next() {
while (!st.hasMoreTokens()) {
try {
String line = br.readLine();
if (line == null) return null;
st = new StringTokenizer(line);
} catch (IOException e) {
return null;
}
}
return st.nextToken();
}
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Concat (2nd) |
| User | addy |
| Language | Java24 (OpenJDK 24.0.2) |
| Score | 0 |
| Code Size | 3079 Byte |
| Status | WA |
| Exec Time | 700 ms |
| Memory | 79800 KiB |
Judge Result
| Set Name | Sample | All | ||||||
|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 0 / 575 | ||||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt |
| All | killer_01.txt, killer_02.txt, killer_03.txt, killer_04.txt, killer_05.txt, killer_06.txt, killer_07.txt, killer_08.txt, killer_09.txt, killer_10.txt, killer_11.txt, killer_12.txt, killer_13.txt, killer_14.txt, killer_15.txt, killer_16.txt, killer_17.txt, killer_18.txt, killer_19.txt, killer_20.txt, sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt, test_61.txt, test_62.txt, test_63.txt, test_64.txt, test_65.txt, test_66.txt, test_67.txt, test_68.txt, test_69.txt, test_70.txt, test_71.txt, test_72.txt, test_73.txt, test_74.txt, test_75.txt, test_76.txt, test_77.txt, test_78.txt, test_79.txt, test_80.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| killer_01.txt | AC | 271 ms | 76808 KiB |
| killer_02.txt | AC | 277 ms | 76876 KiB |
| killer_03.txt | AC | 229 ms | 76420 KiB |
| killer_04.txt | AC | 209 ms | 76272 KiB |
| killer_05.txt | AC | 224 ms | 64584 KiB |
| killer_06.txt | AC | 241 ms | 77080 KiB |
| killer_07.txt | AC | 186 ms | 65752 KiB |
| killer_08.txt | AC | 301 ms | 78124 KiB |
| killer_09.txt | AC | 239 ms | 78536 KiB |
| killer_10.txt | AC | 203 ms | 65196 KiB |
| killer_11.txt | AC | 226 ms | 51760 KiB |
| killer_12.txt | AC | 171 ms | 52040 KiB |
| killer_13.txt | AC | 280 ms | 64692 KiB |
| killer_14.txt | AC | 206 ms | 64668 KiB |
| killer_15.txt | AC | 296 ms | 76836 KiB |
| killer_16.txt | AC | 241 ms | 76852 KiB |
| killer_17.txt | AC | 519 ms | 79800 KiB |
| killer_18.txt | AC | 700 ms | 79056 KiB |
| killer_19.txt | AC | 486 ms | 79400 KiB |
| killer_20.txt | AC | 645 ms | 78972 KiB |
| sample_01.txt | AC | 43 ms | 38596 KiB |
| test_01.txt | AC | 204 ms | 63752 KiB |
| test_02.txt | WA | 265 ms | 65092 KiB |
| test_03.txt | WA | 232 ms | 58716 KiB |
| test_04.txt | WA | 244 ms | 60108 KiB |
| test_05.txt | WA | 251 ms | 60716 KiB |
| test_06.txt | WA | 241 ms | 59704 KiB |
| test_07.txt | WA | 234 ms | 60108 KiB |
| test_08.txt | WA | 237 ms | 59844 KiB |
| test_09.txt | WA | 231 ms | 59780 KiB |
| test_10.txt | WA | 236 ms | 65736 KiB |
| test_11.txt | AC | 150 ms | 47472 KiB |
| test_12.txt | AC | 241 ms | 55132 KiB |
| test_13.txt | AC | 273 ms | 58364 KiB |
| test_14.txt | AC | 289 ms | 60968 KiB |
| test_15.txt | AC | 318 ms | 67900 KiB |
| test_16.txt | AC | 327 ms | 68168 KiB |
| test_17.txt | AC | 389 ms | 68876 KiB |
| test_18.txt | AC | 347 ms | 68972 KiB |
| test_19.txt | AC | 368 ms | 68744 KiB |
| test_20.txt | AC | 377 ms | 68452 KiB |
| test_21.txt | AC | 156 ms | 47108 KiB |
| test_22.txt | AC | 209 ms | 54100 KiB |
| test_23.txt | AC | 280 ms | 58124 KiB |
| test_24.txt | AC | 284 ms | 61432 KiB |
| test_25.txt | AC | 297 ms | 68128 KiB |
| test_26.txt | AC | 336 ms | 68116 KiB |
| test_27.txt | AC | 344 ms | 68888 KiB |
| test_28.txt | AC | 356 ms | 68744 KiB |
| test_29.txt | AC | 357 ms | 68960 KiB |
| test_30.txt | AC | 380 ms | 69020 KiB |
| test_31.txt | AC | 115 ms | 47300 KiB |
| test_32.txt | AC | 125 ms | 48168 KiB |
| test_33.txt | AC | 115 ms | 49932 KiB |
| test_34.txt | AC | 118 ms | 49704 KiB |
| test_35.txt | AC | 110 ms | 49332 KiB |
| test_36.txt | AC | 126 ms | 49028 KiB |
| test_37.txt | AC | 130 ms | 49060 KiB |
| test_38.txt | AC | 130 ms | 48888 KiB |
| test_39.txt | AC | 134 ms | 46696 KiB |
| test_40.txt | AC | 124 ms | 46500 KiB |
| test_41.txt | AC | 174 ms | 48808 KiB |
| test_42.txt | AC | 169 ms | 48424 KiB |
| test_43.txt | AC | 198 ms | 52424 KiB |
| test_44.txt | AC | 220 ms | 52676 KiB |
| test_45.txt | AC | 632 ms | 78980 KiB |
| test_46.txt | AC | 592 ms | 78492 KiB |
| test_47.txt | AC | 579 ms | 78588 KiB |
| test_48.txt | AC | 561 ms | 78776 KiB |
| test_49.txt | AC | 632 ms | 78628 KiB |
| test_50.txt | AC | 592 ms | 78716 KiB |
| test_51.txt | AC | 132 ms | 47424 KiB |
| test_52.txt | AC | 136 ms | 47908 KiB |
| test_53.txt | AC | 128 ms | 47404 KiB |
| test_54.txt | AC | 136 ms | 47528 KiB |
| test_55.txt | AC | 155 ms | 49276 KiB |
| test_56.txt | AC | 170 ms | 50636 KiB |
| test_57.txt | AC | 156 ms | 49740 KiB |
| test_58.txt | AC | 152 ms | 49724 KiB |
| test_59.txt | AC | 149 ms | 46304 KiB |
| test_60.txt | AC | 179 ms | 46732 KiB |
| test_61.txt | AC | 163 ms | 46468 KiB |
| test_62.txt | AC | 149 ms | 46528 KiB |
| test_63.txt | AC | 441 ms | 68844 KiB |
| test_64.txt | AC | 566 ms | 69080 KiB |
| test_65.txt | AC | 555 ms | 69604 KiB |
| test_66.txt | AC | 518 ms | 69728 KiB |
| test_67.txt | WA | 130 ms | 49272 KiB |
| test_68.txt | WA | 133 ms | 48692 KiB |
| test_69.txt | WA | 164 ms | 50052 KiB |
| test_70.txt | WA | 132 ms | 50324 KiB |
| test_71.txt | WA | 160 ms | 49928 KiB |
| test_72.txt | WA | 136 ms | 50428 KiB |
| test_73.txt | WA | 155 ms | 50356 KiB |
| test_74.txt | WA | 139 ms | 50556 KiB |
| test_75.txt | WA | 139 ms | 50084 KiB |
| test_76.txt | WA | 141 ms | 50716 KiB |
| test_77.txt | WA | 146 ms | 47460 KiB |
| test_78.txt | WA | 153 ms | 48140 KiB |
| test_79.txt | AC | 114 ms | 46436 KiB |
| test_80.txt | AC | 116 ms | 48072 KiB |