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

83 lines
1.5 KiB
Java

package chelper;
import io.InputReader;
import io.OutputWriter;
import misc.SimpleSavingChelperSolution;
public class TaskC extends SimpleSavingChelperSolution {
public void solve(int testNumber, InputReader in, OutputWriter out) {
wrapSolve(testNumber, in, out);
}
@Override
public void solve(int testNumber) {
int n = in.nextInt();
int[] a = in.nextIntArray(n);
int[] counts = new int[200];
for (int i : a) {
counts[i]++;
}
int size1 = 0;
int size2 = 0;
int size3Plus = 0;
for (int count : counts) {
if (count == 1) {
size1++;
}
if (count == 2) {
size2++;
}
if (count >= 3) {
size3Plus++;
}
}
if (size1 % 2 == 1 && size3Plus == 0) {
out.println("NO");
return;
}
boolean[] mask = new boolean[n];
boolean parity = true;
boolean shouldUse3Plus = size1 % 2 == 1;
for (int i = 0; i < 200; i++) {
if (counts[i] == 1) {
for (int j = 0; j < n; j++) {
if (a[j] == i) {
mask[j] = parity;
}
}
parity = !parity;
}
if (counts[i] >= 3 && shouldUse3Plus) {
boolean first = true;
for (int j = 0; j < n; j++) {
if (a[j] == i) {
mask[j] = parity == first;
first = false;
}
}
parity = !parity;
shouldUse3Plus = false;
}
}
out.println("YES");
for (boolean b : mask) {
out.print(b ? 'A' : 'B');
}
}
}