欢迎24级新生

第二届计算机程序赛

Problem H. 遥控汽车

在一个布满网格的房间内有一辆遥控汽车,某些网格点上有障碍物,遥控汽车无法走到障碍物上,也无法越过障碍物,但是他将会停留在障碍物的前一个网格点上,第i个障碍物位于点(xi,yi)上。
一开始遥控汽车处在点(0,0)上,面向Y轴正方向(即遥控汽车当前朝向Y轴正方向)。
你操控遥控汽车行驶,但遥控汽车只能接收三种操作:

  1. s(0≤s≤5):表示遥控汽车向前行驶s个单位长度
  2. -2:表示向左旋转90度
  3. -1:表示向右旋转90度

现在给你一组命令,你只能按照所给命令顺序执行。要你求得遥控汽车经过的所有路径点离原点(0,0)距离最大的点的坐标以及距离的平方,如果有多个符合条件的点,输出第一个到达的点。(如果当前处在点(3,4)上,到原点的距离为 3∗3+4∗4=25)

输入

输入共M+3行。
第一行为一个整数N(1≤N≤10000),表示命令的个数。
第二行为N个整数,表示命令。
第三行为一个整数M(0≤M≤10000),表示障碍物的个数。
接下来的M行,每行两个整数xi和yi(-30000≤xi,yi≤30000),表示第i个障碍物的坐标。

输出

输出共两行。
第一行为最大的距离的平方。
第二行为坐标。

样例

标准输入 复制文本
3
4 -1 3
1
5 5
标准输出 复制文本
25
3 4
标准输入 复制文本
5
4 -1 4 -2 4
1
2 4
标准输出 复制文本
65
1 8

提示

样例一:遥控汽车开始位于(0,0)

  1. 向北移动 4 个单位,到达 (0, 4)
  2. 向右旋转
  3. 向东移动 3 个单位,到达 (3, 4)
    距离原点最远的是 (3, 4) ,距离为 3∗3 + 4∗4 = 25.

样例二:遥控汽车开始位于 (0, 0)

  1. 向北移动 4 个单位,到达 (0, 4)
  2. 向右旋转
  3. 向东移动 1 个单位,然后被位于 (2, 4) 的障碍物阻挡,遥控汽车停在 (1, 4)
  4. 向左旋转
  5. 向北走 4 个单位,到达 (1, 8)
    距离原点最远的是 (1, 8) ,距离为 1∗1 + 8∗8 = 65.

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 8
通过 0

A B C D E F G H