private static void Main(string[] args)
{
int numTestCases = int.Parse(Console.ReadLine());
for (int testCaseNum = 0; testCaseNum < numTestCases; testCaseNum++)
{
var ints = GetSplitInts();
int numVertices = ints[0];
int numEdges = ints[1];
int source = ints[2];
int sink = ints[3];
matrix = new int[numVertices, numVertices];
//set to no path
for (int vertice1 = 0; vertice1 < numVertices; vertice1++)
{
for (int vertice2 = 0; vertice2 < numVertices; vertice2++)
{
matrix[vertice1, vertice2] = -1;
}
}
for (int edgeNumber = 0; edgeNumber < numEdges; edgeNumber++)
{
var line = GetSplitInts();
int sourceVertex = line[0];
int destinationVertex = line[1];
int capacity = line[2];
matrix[sourceVertex, destinationVertex] = capacity;
}
Console.WriteLine("Test {0}: Maximum flow = {1}", (testCaseNum + 1),
GetMaximumFlow(source, sink, numVertices));
}
}