#P16177. [Ncpc2020]Exhaustive Experiment彻底实验

[Ncpc2020]Exhaustive Experiment彻底实验

题目描述

你被分配到一个绝密项目中,项目涉及一个奇怪的真空系统。物理学家们正在寻找系统哪里漏气,但大量测量结果让他们感到困惑,于是他们请你帮忙分析。

真空系统中有一面墙,墙上有若干可能漏气的组件。物理学家对一些组件进行了氦气泄漏测试:他们在某个组件处释放氦气,然后观察质谱仪是否在真空系统中检测到氦气峰值。

如果该组件本身有任何一点泄漏,就一定会检测到。但是还有一个复杂因素:氦气会向上扩散。若氦气经过了其他漏气组件,也会导致测试结果为阳性。

具体地,若被测试组件位于 (x,y)(x,y),另一个漏气组件位于 (x,y)(x',y'),并且它在被测试组件上方,即 y>yy'>y,同时满足

xxyy2,|x'-x| \le \frac{y'-y}{2},

则这次测试也会得到阳性结果。

也就是说,对某个组件做测试时,只要该组件本身漏气,或者它上方某个处在氦气扩散范围内的组件漏气,测试结果就是阳性。

现在给出若干组件的位置以及部分测试结果。你希望用尽量少的真实漏气组件解释所有观测结果。请输出所需漏气组件数量的最小值。若不存在任何漏气组件集合能够解释所有测试结果,则输出 impossible

输入格式

第一行包含一个整数 nn,表示组件数量。

接下来 nn 行,每行包含两个整数 x,yx,y 和一个字符 cc,表示一个组件的位置和测试结果类型。

字符 cc 的含义如下:

  • -:没有对该组件进行测试;
  • N:对该组件测试结果为阴性;
  • P:对该组件测试结果为阳性。

输出格式

若可以解释所有测试结果,输出一个整数,表示最少需要多少个漏气组件。

否则输出:

impossible

数据范围

1n2×1051 \le n \le 2\times 10^5 108x,y108-10^8 \le x,y \le 10^8 c{-,P,N}c\in\{\texttt{-},\texttt{P},\texttt{N}\}

保证没有两个组件位于同一位置。

样例 #1

输入

4
1 -1 P
2 2 P
-1 3 N
-2 -1 -

输出

1

样例 #2

输入

2
0 0 N
1 2 P

输出

impossible