Problem
You are given a string 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 or more.
Input
The first line of the input gives the number of test cases, . test cases follow.
Each test case consists of two lines.
The first line of each test case contains an integer , denoting the length of the string .
The second line of each test case contains a string of length .
Output
For each test case, output one line containing Case #:
, where is the test case number (starting from 1) and is POSSIBLE
if there is a possible resulting string that has no palindromic substrings of length or more, or IMPOSSIBLE
otherwise.
Limits
Memory limit: 1 GB.
.
only consists of characters 0
, 1
and ?
.
Test Set 1
Time limit: 20 seconds.
.
Test Set 2
Time limit: 90 seconds.
.
Sample
2 9 100???001 5 100??
Case #1: IMPOSSIBLE Case #2: POSSIBLE
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 characters form a palindrome of length . Otherwise, we get 100001001
, the first characters are a palindrome of length .
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 characters form a palindrome of length . Otherwise, we get 100100001
, the last characters are a palindrome of length .
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
.
ConversionConversion EmoticonEmoticon