70 lines
1.2 KiB
Java
70 lines
1.2 KiB
Java
package chelper;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import io.InputReader;
|
|
import io.OutputWriter;
|
|
import misc.GCJSolution;
|
|
import misc.SimpleSavingChelperSolution;
|
|
|
|
|
|
public class TaskA extends GCJSolution {
|
|
|
|
public void solve(int testNumber, InputReader in, OutputWriter out) {
|
|
wrapSolve(testNumber, in, out);
|
|
}
|
|
|
|
long get(List<Integer> a) {
|
|
long res = 0;
|
|
long t = 1;
|
|
for (int i : a) {
|
|
res += i * t;
|
|
t *= 2;
|
|
}
|
|
return res;
|
|
}
|
|
|
|
@Override
|
|
public void solve(int testNumber) {
|
|
long d = in.nextLong();
|
|
String s = in.nextString();
|
|
|
|
List<Integer> a = new ArrayList<>();
|
|
|
|
int t = 0;
|
|
|
|
for (char c : s.toCharArray()) {
|
|
if (c == 'C') {
|
|
a.add(t);
|
|
t = 0;
|
|
}
|
|
if (c == 'S') {
|
|
t++;
|
|
}
|
|
}
|
|
if (t > 0) {
|
|
a.add(t);
|
|
}
|
|
|
|
int c = 0;
|
|
|
|
while (get(a) > d) {
|
|
c++;
|
|
if (a.size() == 1) {
|
|
out.println("IMPOSSIBLE");
|
|
return;
|
|
}
|
|
|
|
a.set(a.size() - 1, a.get(a.size() - 1) - 1);
|
|
a.set(a.size() - 2, a.get(a.size() - 2) + 1);
|
|
|
|
if (a.get(a.size() - 1) == 0) {
|
|
a.remove(a.size() - 1);
|
|
}
|
|
}
|
|
|
|
out.println(c);
|
|
}
|
|
}
|