Pagini recente » Cod sursa (job #2368174) | Cod sursa (job #2836803) | Cod sursa (job #619646) | Cod sursa (job #2146287) | Cod sursa (job #1109383)
#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];
int v[50001];
vector<int>graf[n_max];
int l=0;
void dfs(int nc)
{
int i,j,p,u,a;
for(i=0;i<graf[nc].size();i++)
{
if(v[graf[nc][i]]==0)
{
v[graf[nc][i]]=1;
g[graf[nc][i]]--;
if(g[graf[nc][i]]==0) out<<graf[nc][i]<<" ";
dfs(graf[nc][i]);
}
}
}
int main()
{
int n,m,i,a,b,grad,j,ok=1;
in>>n>>m;
for(i=0;i<m;i++)
{
in>>a>>b;
graf[a].push_back(b);
g[b]++;
}
for(i=1;i<=n&&ok==1;i++)
{
if(g[i]==0) {out<<i<<" ";dfs(i);v[i]=1;ok=0;}
}
return 0;
}