Pagini recente » Cod sursa (job #2500664) | Cod sursa (job #100828) | Cod sursa (job #762046) | Cod sursa (job #2495210) | Cod sursa (job #2790789)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n, m, x, p, u, y, grad[50005], c[50005];
vector<int> l[50005];
vector<int>::iterator it;
int main() {
fin >> n >> m;
for(int i = 1; i <= m; i++)
{
fin >> x >> y;
l[x].push_back(y);
grad[y]++;
}
u = 0;
for(int i = 1; i <= n; i++)
if(grad[i] == 0)
{
u++;
c[u] = i;
}
p = 1;
while(p <= u)
{
x = c[p];
for(it = l[x].begin(); it != l[x].end(); it++)
{
grad[*it]--;
if(grad[*it] == 0)
c[++u] =* it;
}
p++;
}
for(int i = 1; i <= u; i++)
fout << c[i] << " ";
fout << "\n";
return 0;
}