Cod sursa(job #928935)

Utilizator Pcosmin93Posteuca Cosmin Pcosmin93 Data 26 martie 2013 19:26:38
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include<iostream>
#include<fstream>
#define MAX 100001
using namespace std;
struct nod{
  int data;
  nod *next;
};
int viz[MAX];
nod *graf[MAX];
ifstream citire("sortaret.in");
ofstream afisare("sortaret.out");
int dfs(int x){
  nod *p;
  int nr;
  viz[x]=1;
  p=graf[x]->next;
  while(p!=NULL){
    if(viz[p->data]==0){
      dfs(p->data);
      afisare<<x<<" ";
    }
    p=p->next;
  }
return 0;
}
int main(){
  int noduri,muchii,i,y,x,nr=0;
  citire>>noduri>>muchii;
  nod *nou;

  for(i = 1;i <= noduri; i++)
	{
		graf[i]=new nod;
		graf[i]->next=NULL;
	}
  for(i = 1 ;i <= muchii ;i++){
    citire>>x>>y;
    nou=new nod;
    nou->data=y;
    nou->next=graf[x]->next;
    graf[x]->next=nou;
  }
  for(i = 1; i <= noduri; i++)
   viz[i]=0;
  for(i = 1; i <= noduri; i++)
    if(viz[i]==0){
      nr++;
      dfs(i);
    }
  return 0;
}