Files
2019-03-15 13:47:54 +04:00

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();
}
}