Pagini recente » Cod sursa (job #1170312) | Cod sursa (job #2434693) | Cod sursa (job #165960) | Cod sursa (job #1243115) | Cod sursa (job #2534192)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
deque <int > dx;
int viz[50001], vaz[50001];
struct nod
{
int inf;
nod *urm;
}*v[50001], *p;
void DFS(int a)
{
nod *p=v[a];
vaz[a]=1;
while(p!=NULL)
{
viz[p->inf]--;
if(viz[p->inf]==0) dx.push_back(p->inf);
p = p->urm;
}
}
int main()
{
int n, m, a, b, i, cnx=0;
fin >> n >> m;
for(i=1; i<=m; i++)
{
fin >> a >> b;
viz[b]++;
p=new nod;
p -> inf=b;
p -> urm=v[a];
v[a]=p;
}
for(i=1; i<=n; i++)
{
if(viz[i]==0) dx.push_back(i);
}
while(!dx.empty())
{
fout << dx.front() << " ";
DFS(dx.front());
dx.pop_front();
}
return 0;
}