#AEAI01003. 最近可达抓取点

最近可达抓取点

题目描述

桌面抓取实验中,感知模块会给出若干候选抓取点,但并不是每个点都有效,也不是每个点都在夹爪当前可达半径内。自动化科协具身智能部需要先选出最接近当前夹爪位置的可执行目标。

给定夹爪坐标、最大可达半径 R 以及按输入顺序编号的候选点,请在 valid_i=1 且三维欧氏距离不超过 R 的候选中,输出距离最近的编号。没有合法候选时输出 -1

输入格式

  • 第一行包含夹爪当前坐标 gx gy gz。
  • 第二行包含候选点数量 n 和最大可达半径 R。
  • 接下来 n 行按输入顺序给出 xi yi zi valid_i,候选编号为 1..n。

输出格式

  • 输出一个整数,表示最近合法候选点编号。
  • 若不存在 valid_i=1 且距离不超过 R 的候选点,输出 -1。

数据范围与约束

  • 1 <= n <= 100000
  • R >= 0
  • valid_i 为 0 或 1

判定规则

使用标准输出比较。距离边界和并列情况按下列规则处理。

  • 距离等于 R 视为可达。
  • 比较时可使用平方距离。
  • 距离差不超过 1e-12 时,输出编号更小者。

样例

输入样例 1

0 0 0
3 5
3 0 0 1
1 1 1 1
0 0 10 1

输出样例 1

2

输入样例 2

0 0 0
2 1
2 0 0 1
0 0 0 0

输出样例 2

-1

样例解释

样例覆盖不可达、半径边界和等距离编号 Tie-break。