Cod sursa(job #1846957)

Utilizator stefzahZaharia Stefan Tudor stefzah Data 14 ianuarie 2017 10:42:52
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n,m,j,ge[50005],gi[50005],x,y,ct,s[50005];
bool viz[50005];
vector <int>v[50005];
queue<int>C;
void DFS(int nod)
   {int i;
    for(i=0;i<ge[nod];i++)
       {if(viz[v[nod][i]]==0){viz[v[nod][i]]=1;
                              DFS(v[nod][i]);
                             }
       }
    C.push(nod);
   }
int main()
{int i;
 fin>>n>>m;
 for(i=1;i<=m;i++)
    {fin>>x>>y;
     v[x].push_back(y);
     gi[y]++;
     ge[x]++;
    }
 for(i=1;i<=n;i++)
    {if(gi[i]==0)DFS(i);
    }
 while(!C.empty())
      {ct++;
        s[ct]=C.front();
          C.pop();
      }
    for(i=ct;i>=1;i--)
       fout<<s[i]<<" ";
}