private static int GetMaximumCardinality(Node[] nodes, int m, int n)
{
//stuffed up, taxis need to be on the left, people on right
//of bipartite, reverse and swap m and n to fix
nodes = nodes.Reverse().ToArray();
int cardinality = 0;
for (int leftNodeNum = 0; leftNodeNum < n; leftNodeNum++)
{
Node leftNode = nodes[leftNodeNum];
//set all the right vertexes to falses
for (int rightNodeNum = n; rightNodeNum < nodes.Length; rightNodeNum++)
{
nodes[rightNodeNum].Visited = false;
}
if (FindAugmentingPath(leftNode))
{
cardinality++;
}
}
return cardinality;
}