Cod sursa(job #1000115)

Utilizator radustn92Radu Stancu radustn92 Data 22 septembrie 2013 00:30:43
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <cstdio>
#include <vector>
#define NMAX 50005
#define pb push_back
using namespace std;
bool marc[NMAX];
int n, m;
vector <int> A[NMAX];

void dfs(int node)
{
    marc[node] = 1;
    int i, x;
    for (i = 0; i < (int)A[node].size(); i++)
    {
        x = A[node][i];
        if (!marc[x])
            dfs(x);
    }
    printf("%d ", node);
}

int main()
{
    freopen("sortaret.in", "r", stdin);
    freopen("sortaret.out", "w", stdout);
    scanf("%d%d", &n, &m);
    int i, x, y;
    for (i = 1; i <= m; i++)
    {
        scanf("%d%d", &x, &y);
        A[y].pb(x);
    }
    
    for (i = 1; i <= n; i++)
        if (!marc[i])
            dfs(i);
    printf("\n");
    return 0;
}