Pagini recente » Cod sursa (job #1736378) | Cod sursa (job #1769812) | Cod sursa (job #2077952) | Cod sursa (job #1273726) | Cod sursa (job #629742)
Cod sursa(job #629742)
#include<cstdio>
#include<vector>
using namespace std;
int n, m, grad[50001];
vector <int> L, S, graf[50001];
void Sortare() {
int i, k, p;
unsigned int j, v;
for(i = 1; i <= n; i++)
if(grad[i] == 0) S.push_back(i);
j = 0;
while(j < S.size()) {
k = S[j++];
L.push_back(k);
v = 0;
while(v < graf[k].size()) {
p = graf[k][v++], grad[p]--;
if(grad[p] == 0) S.push_back(p);
}
}
for(j = 0 ; j < L.size(); j++) printf("%d ", L[j]);
}
int main() {
int i, x, y;
freopen("sortaret.in", "r", stdin), freopen("sortaret.out", "w", stdout);
scanf("%d %d", &n, &m);
for(i = 1; i <= m; i++)
{
scanf("%d %d", &x, &y);
graf[x].push_back(y);
grad[y]++;
}
Sortare();
return 0;
}