Cod sursa(job #751382)

Utilizator Theorytheo .c Theory Data 25 mai 2012 21:41:44
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<fstream>
#include<vector>
#define nmax 50003
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n, m;
vector <int> v[nmax];
int gr[nmax];
void dfs(int x)
{
    gr[x]--;
    fout << x << " ";
    vector <int> :: iterator i;
    for(i = v[x].begin(); i !=  v[x].end();  i++ ){
        gr[*i]--;
        if(!gr[*i])
            dfs(*i) ;
    }

}
void read()
{
    int i, j, k;
    fin >> n >>m;
    for(k = 1; k <= m; k++)
        fin >> i >> j, v[i].push_back(j) , gr[j]++;
   // fout <<v[2].size();
    for(int i = 1; i <= n; i++)
        if(!gr[i])
            dfs(i);
}
int main()
{

    read();
    fin.close();
    return 0;
}