P16871 [GKS 2022 #A] Palindrome Free Strings
Description
You are given a string $S$ consisting of characters $0$, $1$, and $?$. You can replace each $? $ with either $0$ or $1$. Your task is to find if it is possible to assign each $? $ to either $0$ or $1$ such that the resulting string has no substrings that are palindromes of length $5$ or more.
Input Format
The first line of the input gives the number of test cases, $T$. $T$ test cases follow.
Each test case consists of two lines.
The first line of each test case contains an integer $N$, denoting the length of the string $S$.
The second line of each test case contains a string $S$ of length $N$.
Output Format
For each test case, output one line containing `Case` $\#x$: $y$, where $x$ is the test case number (starting from $1$) and $y$ is `POSSIBLE` if there is a possible resulting string that has no palindromic substrings of length $5$ or more, or `IMPOSSIBLE` otherwise.
Explanation/Hint
In Sample Case #$1$, to prevent the whole string from being a palindrome, the first and last question mark must be different characters.
If we replace first question mark with $0$ and replace the last question mark with $1$, we get $1000?1001$. If the remaining $?$ is replaced by $1$, we get $100011001$, then the first $5$ characters form a palindrome of length $5$. Otherwise, we get $100001001$, the first $6$ characters are a palindrome of length $6$.
If we replace first question mark with $1$ we get $1001?0001$. If the remaining $?$ is replaced by $1$, we get $100110001$, then the last $5$ characters form a palindrome of length $5$. Otherwise, we get $100100001$, the last $6$ characters are a palindrome of length $6$.
Hence, there is no way to get a valid string.
In Sample Case #$2$, one of the valid strings after replacing all the $?$ is $10011$.
### Limits
$1 \le T \le 100$.
$S$ only consists of characters $0$, $1$ and $?$.
**Test Set $1$**
$1 \le N \le 15$.
**Test Set $2$**
$1 \le N \le 5 \times 10^4$.