#P3433. [POI 2005] PRA-Dextrogyrate Camel

[POI 2005] PRA-Dextrogyrate Camel

题目描述

Byteotia 由 NN 个绿洲组成,且任意三点不共线。Byteasar 住在其中一个绿洲里,并且在其他每个绿洲都有一位熟人。Byteasar 想尽可能多地去拜访他们。他打算骑着他的骆驼出行。这只骆驼像骡子一样倔强,因此以一种特别的方式移动:

  • 从某个绿洲出发后,它沿一条直线前进,直到到达另一个绿洲。
  • 骆驼只在绿洲处转向,而且只向右(顺时针)转,转角属于区间 [0°,180°][0\degree, 180\degree](在同一个绿洲它只会转一次,也就是说不会通过连续两次各 100°100\degree 的转向来达成总计 200°200\degree 的转弯)。
  • 骆驼不愿踩着自己留下的足迹返回。

请帮助 Byteasar 规划一条路线,使他能在遵守上述规则的前提下拜访尽量多的朋友。路线必须从 Byteasar 所在的绿洲出发,并最终回到该绿洲。路线应由依次连接所访绿洲的线段组成。除了 Byteasar 的起始绿洲(旅程的起点与终点)外,路线不得经过任意一点两次。

起初,Byteasar 的骆驼面朝某个绿洲,且必须首先朝该方向出发。旅程结束时骆驼面向的方向无关紧要。

任务

编写一个程序,完成以下要求:

  1. 从标准输入读入骆驼面朝的方向与各个绿洲的坐标;
  2. 计算在遵守规则的情况下,Byteasar 最多可以拜访的朋友数量;
  3. 将结果写到标准输出。

输入格式

标准输入的第一行包含一个整数 NN3N1 0003 \le N \le 1\ 000)—— Byteotia 中的绿洲数量。所有绿洲按 11NN 编号。Byteasar 居住在编号为 11 的绿洲上,且他的骆驼面朝编号为 22 的绿洲。接下来的 NN 行给出各个绿洲的坐标。在第 (i+1)(i+1) 行,给出两个整数 xi,yix_i, y_i,分别表示编号为 ii 的绿洲的横坐标与纵坐标,二者以一个空格分隔。所有坐标均在区间 [16 000,16 000][-16\ 000, 16\ 000] 内。

输出格式

标准输出仅一行,输出一个整数—— Byteasar 最多可以拜访的朋友数量。

6
1 1
-1 4
0 -1
4 1
0 3
1 4
4

提示

样例解释:

翻译来自 ChatGPT 5。