Nu aveti permisiuni pentru a descarca fisierul grader_test10.ok
Cod sursa(job #484718)
Utilizator | Data | 15 septembrie 2010 17:19:01 | |
---|---|---|---|
Problema | Sortare topologica | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.63 kb |
#include <cstdio>
#include <vector>
using namespace std;
#define pb push_back
#define forit(it, v) for (__typeof(v.begin()) it = v.begin(); it != v.end(); ++it)
const int MAX_N = 50002;
int n, m, cnt;
int a[MAX_N], t[MAX_N];
vector <int> v[MAX_N];
void df(int nod)
{
a[++cnt] = nod;
forit(it, v[nod])
df(*it);
}
int main()
{
int i;
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
scanf("%d %d", &n, &m);
for (i = 1; i <= m; ++i)
{
int x, y;
scanf("%d %d", &x, &y);
v[x].pb(y);
t[y] = 1;
}
for (i = 1; i <= n; ++i)
if (!t[i])
df(i);
for (i = 1; i <= n; ++i)
printf("%d ", a[i]);
}