93 lines
1.7 KiB
Java
93 lines
1.7 KiB
Java
package chelper;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
|
|
import io.InputReader;
|
|
import io.OutputWriter;
|
|
|
|
public class TaskC {
|
|
public void solve(int testNumber, InputReader in, OutputWriter out) {
|
|
char[] ch = in.nextString().toCharArray();
|
|
int[] a = new int[26];
|
|
|
|
char dup = 0;
|
|
int[] fpos = new int[26];
|
|
Arrays.fill(fpos, -1);
|
|
|
|
for (int i = 0; i < 27; i++) {
|
|
char c = ch[i];
|
|
if (fpos[c - 'A'] == -1) {
|
|
fpos[c - 'A'] = i;
|
|
}
|
|
a[c - 'A']++;
|
|
if (a[c - 'A'] >= 2) {
|
|
if (dup == 0) {
|
|
dup = c;
|
|
} else {
|
|
out.println("Impossible");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
List<Character> pre = new ArrayList<>();
|
|
List<Character> mid = new ArrayList<>();
|
|
List<Character> post = new ArrayList<>();
|
|
|
|
int st = 0;
|
|
|
|
for (char c : ch) {
|
|
if (c == dup) {
|
|
st++;
|
|
} else {
|
|
if (st == 0) {
|
|
pre.add(c);
|
|
}
|
|
if (st == 1) {
|
|
mid.add(c);
|
|
}
|
|
if (st == 2) {
|
|
post.add(c);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (mid.size() == 0) {
|
|
out.println("Impossible");
|
|
return;
|
|
}
|
|
|
|
int pos = 13 - mid.size() / 2 - 1;
|
|
|
|
char[] res = new char[26];
|
|
|
|
res[pos] = dup;
|
|
|
|
int strpos = fpos[dup - 'A'];
|
|
|
|
for (int i = 0; i < 27; i++) {
|
|
char c = ch[strpos];
|
|
strpos = (strpos + 1) % 27;
|
|
if (c == dup) {
|
|
continue;
|
|
}
|
|
pos = (pos + 1) % 26;
|
|
res[pos] = c;
|
|
}
|
|
|
|
|
|
for (int i = 0; i < 13; i++) {
|
|
out.print(res[i]);
|
|
}
|
|
out.println();
|
|
|
|
for (int i = 0; i < 13; i++) {
|
|
out.print(res[25 - i]);
|
|
}
|
|
out.println();
|
|
}
|
|
}
|