Pagini recente » Istoria paginii utilizator/eoancuta | Cod sursa (job #1603334) | Istoria paginii utilizator/sasasasasasa | Cod sursa (job #2007008) | Cod sursa (job #2038564)
#include <fstream>
#include <vector>
#include <queue>
#define MAXN 50005
#define MAXM 100005
using namespace std;
ifstream fi("sortaret.in");
ofstream fo("sortaret.out");
int n,m;
vector <int> G[MAXN];
int A[MAXN];
int main()
{
fi>>n>>m;
queue <int> zero;
for (int i=1; i<=m; i++)
{
int u,v;
fi>>u>>v;
G[u].push_back(v);
A[v]++;
}
for (int i=1; i<=n; i++)
if (A[i]==0)
zero.push(i);
while (!zero.empty())
{
///nod nu are niciun arc spre el
int nod=zero.front();
zero.pop();
fo<<nod<<" ";
for (auto copil: G[nod])
{
A[copil]--;
if (A[copil]==0)
zero.push(copil);
}
}
fi.close();
fo.close();
return 0;
}