QOJ.ac

QOJ

Time Limit: 1.0 s Memory Limit: 512 MB Total points: 100

#8920. 割草机起义

Statistics

Иннополис 的草坪由电动割草机器人修剪。我们认为草坪是数轴上的一条线段,割草机器人位于这条线段上的某些点。机器人的大小可以忽略不计。一个机器人位于草坪的起点(其左侧没有草坪),另一个机器人位于草坪的终点(其右侧没有草坪)。每个机器人最初朝向两个方向之一:向右或向左。

problem_8920_512bc14f5ce16416bfdd86df55ed73fa.png

第 $i$ 个机器人的电量足以修剪 $p_i$ 米草坪。夜间充电后,所有机器人同时开始工作,并以相同的速度移动。每个机器人沿数轴向自己朝向的方向移动。机器人会在以下三种情况之一发生时停止:

  1. 机器人的电量耗尽。换句话说,第 $i$ 个机器人从起点出发已经行驶了 $p_i$ 米。
  2. 机器人到达草坪的起点或终点。
  3. 机器人在同一点遇到另一个迎面驶来的机器人,或遇到一个此前已经停在该点的机器人。

在启动机器人之前,你可以将某些机器人的朝向改为相反方向。你需要修剪整个草坪上的草。

求至少需要改变多少个机器人的朝向,才能最终修剪草坪上的所有草。否则,报告无法修剪所有草。

输入格式

第一行包含一个整数 $n$($2 \le n \le 10^5$),表示机器人的数量。

接下来 $n$ 行按照机器人在数轴上从左到右的顺序描述各个机器人。每个机器人由三个整数 $x_i$、$p_i$、$d_i$ 描述,分别表示机器人的初始位置、它能够行驶的米数和移动方向($0 = x_1 < x_2 < \cdots < x_n \le 10^9$,$1 \le p_i \le 10^9$;$d_i = -1$ 表示向左移动,即朝坐标减小的方向移动;$d_i = 1$ 表示向右移动,即朝坐标增大的方向移动)。草坪的起点和终点分别位于 $x_1 = 0$ 和 $x_n$。

输出格式

输出一行。如果无法修剪草坪上的所有草,输出 $-1$。否则,输出一个数,表示为了修剪整个草坪,需要将多少个机器人的朝向改为相反方向。

子任务

子任务 分值 关于 $n$ 的限制 附加限制 前置子任务
1 23 $n \le 10$ 样例
2 16 所有机器人最初都朝向右侧($d_i = 1$)
3 17 $n \le 1000$ 样例, 1
4 13 $x_i = i - 1$,$p_i = 1$
5 14 $p_i = 10^9$
6 17 无附加限制 样例, 1–5

样例

输入格式 1

3
0 1 -1
1 1 1
2 1 -1

输出格式 1

1

输入格式 2

2
0 1 1
4 2 -1

输出格式 2

-1

说明

第一个样例如图所示。为了修剪所有草,例如可以将位于中间的机器人的朝向反转。

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.