QOJ.ac

QOJ

Limite de temps : 1 s Limite de mémoire : 256 MB Points totaux : 100

#11119. 力场

Statistiques

卢克·天行者在试图从帝国旗舰获取机密数据时陷入了陷阱。现在他正站在飞船反应堆内一根长管道的边缘。为了应对这种情况,他只能向前移动。在卢克前方某处站着一名帝国冲锋队队员,他刚刚向卢克发射了一道爆能束。与此同时,R2-D2 不小心激活了飞船的力场。力场发生器位于管道上。这些发生器威力巨大,足以改变爆能束的运动方向。

每个发生器在爆能束从正面射来时会将其反射,而从背面射来时则会让其穿过。然而,如果爆能束从正面射来,它会摧毁该发生器。因此,发生器分为两种类型:一种面向卢克,另一种则朝向相反方向。

发生器被摧毁后,它将不再对爆能束产生影响。冲锋队队员的电池电量不足,无法再次射击,现在正躺在管道底部,因此爆能束不会击中他。

当爆能束到达卢克处时,他必须用光剑将其反射。但由于力场的作用,爆能束在被反射后只会改变方向,并继续沿管道飞行。在所有发生器被摧毁之前,卢克无法移动。此外,如果摧毁所有发生器后,爆能束再次飞向卢克,他必须再反射一次。现在他想知道是否有可能摧毁所有发生器,如果可以,他总共需要反射多少次等离子爆能束。

输入格式

第一行包含两个整数 $N$ 和 $X$,分别表示发生器的数量以及卢克与冲锋队队员之间的距离($1 \le N \le 100\,000$,$1 \le X \le 10^9$)。

接下来的 $N$ 行,每行包含两个整数。第 $i$ 行包含 $x_i$(卢克与第 $i$ 个发生器之间的距离)和发生器的类型($1 \le x_i \le 10^9$;若发生器面向卢克,类型为 $1$,否则为 $0$)。

发生器按距离卢克由近到远的顺序给出(即当 $i < j$ 时,$x_i < x_j$)。冲锋队队员的位置不会与任何发生器的位置重合。

输出格式

如果无法摧毁所有发生器,输出 $-1$。

否则,输出一个整数,表示卢克需要反射等离子爆能束的次数。

样例

输入 1

2 3
1 1
2 1

输出 1

3

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.