Pagini recente » Cod sursa (job #1207433) | Cod sursa (job #1120409) | Cod sursa (job #1659825) | Cod sursa (job #1307981) | Cod sursa (job #1165939)
#include <fstream>
#include <vector>
const int NMAX = 50005;
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int N,M,gr[NMAX],Q[NMAX],nod,x,y;
vector <int> v[NMAX];
void BFS()
{
for (int i = 1; i <= N; ++i)
{
if (gr[i] == 0)
Q[ ++Q[0] ] = i;
for (int i = 1; i <= N; ++i)
{
nod = Q[i];
for (int j = 0; j < v[nod].size(); ++j)
{
gr[v[nod][j]]--;
if (gr[v[nod][j]] == 0)
Q[ ++Q[0] ] = v[nod][j];
}
}
}
}
int main()
{
f >> N >> M;
for (int i = 1; i <= M; ++i)
{
f >> x >> y;
gr[y]++;
v[x].push_back(y);
}
BFS();
for (int i = 1; i <= N; ++i)
{
g << Q[i] << " ";
}
f.close();
g.close();
return 0;
}