#P4694. 水题嘉年华

水题嘉年华

题目描述

水题嘉年华温暖节最盛大的活动,而主办方为了缓解大部分OIer常年把不到妹的问题,特别设置了一个有趣的活动“脱单连连看”。规则是这样的,有 MM 个OIer 和 MM 个妹子参加这个节目,主持人在黑板上按照某个顺序写下这 N=2MN=2M 个人的名字,然后请水题嘉年华的特邀嘉宾 Lyra 将OIer 和妹子配对。具体来说,这 MM 个名字排成水平的一行,Lyra 要画 MM 条折线,每条折线不能跨越名字所在的水平线,且必须连接一个OIer和一个妹子,任意两条折线不能相交。举一个合法例子:

然而,很多OIer其实已经暗地里脱团了,于是每个OIer其实都带来了自己的妹子,只不过想借助这个活动来正大光明的公布恋情。方便起见我们给每个人一个 0到 M-1的编号,一个OIer和他的妹子编号相同。Lyra的任务就是在合法条件下连接每个OIer和他的妹子。现在 N 个位置中某些位置的人已经确定了,剩下的由 Lyra 任意填写,Lyra 想知道,是否存在一种填写剩下位置的姓名的方式,使得她能在保证合法的前提下连接每个OIer和他的妹子。填写姓名要保证 0 到 M1M-1 每个编号出现且只出现两次。

输入格式

每个输入包含多组数据。 第一行一个整数 TT,表示数据组数,以下 TT 组数据,对于每组数据:

  • 第一行一个整数 MM,表示OIer和妹子的总数目。
  • 第二行 NN 个整数表示每个位置已经确定的姓名的编号, -1表示这个位置还没有确定。输入保证 NN 为偶数且每个编号出现两次或零次。T30,N50T \leq 30, N \leq 50

输出格式

对于每组数据,若 Lyra 可以安排剩余的姓名并连接每个OIer和他的妹子,输出"POSSIBLE",否则输出"IMPOSSIBLE"。

输入数据示例

2
2
6
-1 0 -1 -1 0 -1
6
1 -1 2 1 -1 2

输出数据示例

POSSIBLE
IMPOSSIBLE