Pagini recente » Cod sursa (job #2392982) | Cod sursa (job #331813) | Cod sursa (job #2123782) | Cod sursa (job #791947) | Cod sursa (job #2199458)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
#define MAXIM 50001
vector <int> v[MAXIM];
int coada[MAXIM], deg[MAXIM];
int main()
{
int n, m, a, b, u=-1, p=0;
in >> n >> m;
for (int i = 0; i < m; i++)
{
in >> a >> b;
v[a].push_back(b);
deg[b]++;
}
for (int i = 1; i <= n; i++) if (deg[i] == 0) coada[++u] = i;
while (p <= u)
{
int x = coada[p], length=v[x].size();
p++;
for (int i = 0; i < length; i++)
{
deg[v[x][i]]--;
if (deg[v[x][i]] == 0) coada[++u] = v[x][i];
}
}
for (int i = 0; i < n; i++) out << coada[i] << ' ';
return 0;
}