Pagini recente » Cod sursa (job #68274) | Cod sursa (job #659805) | Cod sursa (job #870961) | Cod sursa (job #40029) | Cod sursa (job #2091035)
#include<fstream>
#include<list>
#include<deque>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
const int nmax=50005;
list<int>a[nmax];
int n,m,c[nmax];
void read_data()
{
int i,x,y;
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>x>>y;
a[x].push_back(y);
c[y]++;
}
}
void dfs(int nod)
{
c[nod]=-1;
fout<<nod<<' ';
for(list<int>::iterator it=a[nod].begin();it!=a[nod].end();it++)
{
c[*it]--;
if(c[*it]==0)
dfs(*it);
}
}
void topological_sort()
{
int i,nod;
list<int>::iterator it;
deque<int>d;
for(i=1;i<=n;i++)
if(c[i]==0)
dfs(i);
}
int main()
{
read_data();
topological_sort();
}