Cod sursa(job #1459202)

Utilizator ArkinyStoica Alex Arkiny Data 9 iulie 2015 12:48:23
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<iostream>
#include<fstream>
#include<deque>
using namespace std;

ifstream in("sortaret.in");
ofstream out("sortaret.out");

#define MAX 50001

struct Node
{
	Node *next;
	int val;
}*A[MAX],*S;


int v[MAX],N,M;

void insert_to_list(Node *&list,int val)
{
	Node *p=new Node;
	p->val=val;
	p->next=list;
	list=p;
}


void DFS(int e)
{
	v[e]=1;
	Node *p=A[e];
    while(p)
	{
		if(!v[p->val])
		{
			v[p->val]=1;
			DFS(p->val);
		}
		p=p->next;
	}
	insert_to_list(S,e);
	
}

int main()
{
	in>>N>>M;
    int w,u;
	for(int i=1;i<=M;i++)
	{
		in>>w>>u;
		insert_to_list(A[w],u);
	}

	for(int i=1;i<=N;i++)
	{
		if(!v[i])
			DFS(i);
	}

	Node *temp=S;

	while(temp)
	{
		out<<temp->val<<" ";
		temp=temp->next;
	}


	return 0;
}