Pagini recente » Cod sursa (job #1391449) | Cod sursa (job #1493879) | Cod sursa (job #1804296) | Cod sursa (job #2303934) | Cod sursa (job #1163609)
#include <fstream>
#include <vector>
const int NMAX = 50005;
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int N,M,gr[NMAX],x,y,Q[NMAX],nod;
vector <int> v[NMAX];
void solve()
{
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;
v[x].push_back(y);
gr[y]++;
}
solve();
for (int i = 1; i <= N; ++i)
{
g << Q[i] << " ";
}
f.close();
g.close();
return 0;
}