Pagini recente » Cod sursa (job #659288) | Cod sursa (job #345340) | Cod sursa (job #3239227) | Cod sursa (job #1508867) | Cod sursa (job #1107942)
#include <fstream>
#include<vector>
#define n_max 50001
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int g[50001];
int c[50001];
vector<int>graf[n_max];
void bfs(int k)
{
int i,j,p,u,a;
p=0;
u=0;
out<<k<<" ";
while(p<=u)
{
for(i=0;i<graf[c[p]].size();i++)
{
a=graf[c[p]][i];
u++;
c[u]=a;
g[a]--;
if(g[a]==0) out<<a<<" ";
}
p++;
}
}
int main()
{
int n,m,i,a,b,grad,j;
in>>n>>m;
for(i=0;i<m;i++)
{
in>>a>>b;
graf[a].push_back(b);
g[b]++;
}
for(i=1;i<=n;i++)
{
if(g[i]==0) b=i;
}
c[0]=b;
bfs(b);
return 0;
}