## USACO 2012 March Contest, Bronze Division

## Problem 2. Connect the Cows

Contest has ended.

**Not submitted**

Problem 2: Connect the Cows [Brian Dean, 2012]
Every day, Farmer John walks around his farm to check on the health and
well-being of his N (1 <= N <= 10) cows.
The location of each cow is described by a point in the 2D plane, and
Farmer John starts out at the origin (0,0). To make his route more
interesting, Farmer John decides that he will only walk in directions
parallel to the coordinate axes -- that is, only north, south, east, or
west. Furthermore, he only changes his direction of travel when he reaches
the location of a cow (he may also opt to pass through the location of a
cow without changing direction, if desired). When he changes his direction
of travel, he may make either a 90-degree or 180-degree turn. FJ's route
must take him back to the origin after visiting all his cows.
Please compute the number of different routes FJ can take to visit his N
cows, if he changes direction exactly once at the location of each cow. He
is allowed to pass through the location of a cow without changing direction
an arbitrary number of times. The same geometric route taken forward
versus backward counts as two different routes.
PROBLEM NAME: connect
INPUT FORMAT:
* Line 1: The integer N.
* Lines 2..1+N: Line i+1 contains the x and y coordinates
(space-separated) of the ith point (each values is in the
range -1000...1000).
SAMPLE INPUT (file connect.in):
4
0 1
2 1
2 0
2 -5
INPUT DETAILS:
There are 4 cows, at positions (0,1), (2,1), (2,0), and (2,-5).
OUTPUT FORMAT:
* Line 1: The number of different routes FJ can take (this could be
zero if there are no valid routes).
SAMPLE OUTPUT (file connect.out):
2
OUTPUT DETAILS:
There are two different routes: Farmer John can visit cows in the orders
1-2-4-3 or 3-4-2-1 before returning to the origin.

Contest has ended. No further submissions allowed.