#4310. USACO 2012 年 3 月比赛 铜牌组 Connect the Cows

USACO 2012 年 3 月比赛 铜牌组 Connect the Cows

题目描述

每天,农民约翰都会在他的农场里走来走去,检查他的N(1 <= N <= 10)头奶牛的健康状况。

每头奶牛的位置由二维平面上的一个点描述,农夫约翰从原点(0,0)(0,0)开始。为了让他的路线更有趣,农夫约翰决定他只朝着平行于坐标轴的方向行走——即仅向北、南、东或西方向。此外,他只有在到达一头奶牛的位置时才会改变行进方向(如果需要,他也可以选择不改变方向而经过一头奶牛的位置)。在旅行中改变方向时,他可以进行90度或180度的转弯。农夫约翰的路线必须在拜访完所有奶牛后将他带回原点。

请计算农夫约翰可以采取的不同路线的数量,要求他在每头奶牛的位置恰好改变一次方向。他允许在不改变方向的情况下任意次数地经过奶牛的位置。同样的几何路线,正向和反向算作两条不同的路线。

输入格式

  • 第1行:整数NN
  • 第2..1+NN行:第i+1i+1行包含两个空格分隔的整数xxyy,表示第ii头奶牛的坐标(每个值的范围在-1000...1000)。

输出格式

  • 第1行:农夫约翰可以采取的不同路线的数量(如果没有有效路线,则为0)。

样例

样例输入

4
0 1
2 1
2 0
2 -5

样例输出

2

数据范围

1N101 \leq N \leq 10,奶牛坐标范围为1000x,y1000-1000 \leq x,y \leq 1000