#AEAI04009. 夹爪开度与接近方向匹配

夹爪开度与接近方向匹配

题目描述

夹爪抓取物体时,需要根据物体宽度预留两侧安全余量,并检查接近方向是否接近物体主轴的法向。给出夹爪开度范围、安全余量和最大角度误差,请逐个判断候选物体是否可抓。

对宽度为 width 的物体,所需开度为 opening = width + 2 * margin。接近方向 approach 必须与 axis + 90axis - 90 中至少一个方向的角度差不超过 max_ang

输入格式

第一行输入 gmin gmax margin max_ang

第二行输入候选数量 N

接下来 N 行,每行输入 id width axis approach

输出格式

对每个候选按输入顺序输出一行:

  • 若开度不在 [gmin, gmax] 内,输出 id WIDTH
  • 否则若接近方向不满足要求,输出 id ANGLE
  • 否则输出 id GRASPABLE opening

opening 保留 6 位小数。

判定规则

使用标准输出比较。开度范围和角度阈值均包含边界;角度差按归一化到 (-180, 180] 后的绝对差计算。检查优先级为 WIDTHANGLE

数据范围与测试提示

  • 正式测试会覆盖样例没有出现的边界输入,请不要依赖样例规模或样例顺序写特判。
  • 输出只包含题目要求的字段,不要输出调试信息;浮点结果按题面要求保留 6 位小数。
  • 开度上下界和角度阈值都包含边界;若宽度已不合法,应优先输出宽度错误而不是角度错误。
  • 角度差按归一化后的绝对差计算,隐藏数据会覆盖 -180/180 附近的接近方向。
  • 先判 WIDTH 再判 ANGLE;角度差要处理 180/-180 附近的归一化边界。

样例

输入样例 1

1 5 0.5 10
2
1 3 0 90
2 5 0 90

输出样例 1

1 GRASPABLE 4.000000
2 WIDTH

输入样例 2

1 5 0.5 10
1
1 3 0 0

输出样例 2

1 ANGLE