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.

**Input:**

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.

**Output:**

For each test case output will be 1 if the topological sort is done correctly else it will be 0.

**User Task**:

The task is to complete the function **topoSort**() which should return an array containing nodes in topological sorted manner.

**Constraints:**

1 <= T <= 50

1 <= E, N <= 100

0 <= u, v

**Example:**

**Input**

2

6 6

5 0 5 2 2 3 4 0 4 1 1 3

4 4

3 0 1 0 2 0 0 1

**Output**:

1

0

**Explanation:
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.

Author: Shubham Joshi 1

If you have purchased any course from GeeksforGeeks then please ask your doubt on course discussion forum. You will get quick replies from GFG Moderators there.

saiujwal13083 | 347 |

isiddhisingh | 252 |

Abhishek_Jadhav | 243 |

_uncle_sam_ | 221 |

c_ocoooo | 217 |

saiujwal13083 | 610 |

SumitSingh27 | 466 |

c_ocoooo | 456 |

rathiarpit29 | 379 |

NaveenKumarNakka | 370 |

blackshadows | 5362 |

Ibrahim Nash | 5242 |

akhayrutdinov | 5111 |

mb1973 | 4931 |

Quandray | 4598 |

Login to report an issue on this page.