Cod sursa(job #473988)

Utilizator cosmyoPaunel Cosmin cosmyo Data 1 august 2010 23:13:11
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream.h>
#define NMAX 50005
#include<list>
using namespace std;
typedef list<long> LI;
typedef LI::iterator IT;
long nr,v[NMAX],po[NMAX],n,m;
LI a[NMAX];
void cit()
{ifstream fin("sortaret.in");
  fin>>n>>m;
  long i,x,y;
	  for(i=1;i<=m;++i)
		  {fin>>x>>y;a[x].push_back(y);a[y].push_back(x);};
  fin.close();
}
void dfs(long k)
{IT it;
 v[k]=1;
  for(it=a[k].begin();it!=a[k].end();++it)
	  if(v[*it]==0)
		dfs(*it);
  po[++nr]=k;
}
void afis()
{long i;
 ofstream fout("sortaret.out");
  for(i=1;i<=n;++i)
	  if(v[i]==0)
		  dfs(i);
  for(i=n;i>=1;--i)
	  fout<<po[i]<<" ";
  fout<<'\n';
  fout.close();
}
int main()
{cit();
 afis();
 return 0;
}