git reimport
This commit is contained in:
92
archive/2016.10/2016.10.22 - Canada Cup 2016/TaskC.java
Normal file
92
archive/2016.10/2016.10.22 - Canada Cup 2016/TaskC.java
Normal file
@@ -0,0 +1,92 @@
|
||||
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();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user