#434. [CZOI2019 D] 炮

[CZOI2019 D] 炮

题目描述

小 X 备完马的跳法后就接着备炮的走法,他觉得炮的走法相比马的跳法简单多了。如果有个对方的棋子与炮处于同一行或同一列,并且它们中间只隔了一个棋子,则炮可以吃到这个棋子,俗称“炮打隔子”,中间那个棋子称为炮架,炮架可以是任何一方的棋子。下图为“炮打隔子”的示意图。

于是小 X 在作业中增加了炮的吃子难度,小 X 把中国象棋中的炮的功能做了扩展,扩展到只要在一条直线上炮都能隔着一个棋子打到对方的棋子,这里的直线是指从炮所在的交叉点出发到某个对方棋子所在的交叉点为止画一条直线,如果这条直线中间经过的交叉点上恰好只有一个棋子,则炮就能吃到该对方棋子。为了方便程序处理,小 X 规定炮的位置固定在左下角即 (0,0)(0,0) 的位置上,只需要你计算左下角位置上的炮能吃到几个对方棋子。

输入格式

输入数据第一行为一个正整数 nn,表示棋盘上除了左下角的炮之外共有 nn 个棋子。 接下来共有 nn 行,每行三个整数表示一个棋子的位置和敌我属性。前两个数为棋子的位置,第三个数表示该棋子与炮的关系,00 表示它与炮是同一方的,可以做炮架,但不可以被炮吃;11 表示它与炮不是同一方的,既可以做炮架,又可以被炮吃。棋子位置的表示与第三题跳马相同。

输入数据保证同一位置只有一个棋子。炮的位置在左下角即 (0,0)(0,0) 的位置上,该处保证不会有其它棋子。

输出格式

输出一个整数,表示左下角位置上的炮能吃到的对方棋子的数量。

20
1 1 0
2 6 0
2 9 0
3 1 0
3 2 0
3 9 0
4 0 1
4 1 1
4 2 1
4 3 1
4 5 0
4 6 1
5 0 1
5 8 0
6 0 1
6 2 1
6 6 1
6 9 0
7 9 1
8 9 1
3

数据范围

1n1051 \le n \le 10^5

0x,y100000 \le x,y \le 10000