DFS
DFS
#include<stdlib.h>
int V,E,t[50],l=0;
void driver(int[][2]);
int main() {
int i,j,c,ch;
scanf("%d",&V);
scanf("%d",&E);
int a[E][2];
for(i=0;i<E;i++) {
scanf("%d %d",&a[i][0],&a[i][1]);
for(j=i+1;j<E;j++) {
if((a[i][0] == a[j][0])&&(a[i][1]==a[j][1]) ) {
exit(0);
exit(0);
}
/*if(a[i][0]==a[j][1]) {
exit(0);
}*/
printf("Vertices: ");
for(i=0;i<V;i++)
printf("%d ",i);
printf("\nEdges:\n");
for(i=0;i<E;i++)
driver(a);
return 0;
int i,j,k,st[V],flag=-1,visit[50];
for(i=0;i<V;i++)
visit[i]=0;
for(k=0;k<V;k++) {
for(i=0;i<V;i++) {
flag=0;
for(j=0;j<E;j++) {
if(a[j][1]==i) {
flag=1;
dfs(i,visit,a);
t[l++]=i;
if(flag==-1) {
return;
else {
for(i=V-1;i>=0;i--)
printf("%d ",t[i]);
int j;
visit[i]=1;
for(j=0;j<E;j++) {
t[l++]=a[j][1];