Given a directed graph, you need to complete the function topoSort which returns an array having the topologically sorted elements of the array and takes two arguments. The first argument is the Graph graph represented as adjacency list and the second is the number of vertices N.
Note : There can be multiple topological sorts of a Graph. The driver program that calls your function doesn't match your output element by element, but checks whether the output produced by your function is a valid topological sort or not.
The first line of input takes the number of test cases then T test cases follow . Each test case contains two lines. The first line of each test case contains two integers E and N representing no of edges and the number of vertices. Then in the next line are E pairs of integers u, v representing an edge from u to v in the graph.
For each test case output will be 1 if the topological sort is done correctly else it will be 0 .
1 <= T <= 50
1 <= E, N <= 50
0 <= u, v
5 0 5 2 2 3 4 0 4 1 1 3
Testcase 1: The output 1 denotes that the order is valid. So, if you have implemented your function correctly, then output would be 1 for all test cases.