Cod sursa(job #1202667)

Utilizator robertstrecheStreche Robert robertstreche Data 28 iunie 2014 23:05:40
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <vector>

#define lmax 50005
#define lmax1 100005

using namespace std;

ifstream f("sortaret.in");
ofstream g("sortaret.out");

vector <int>v[lmax];

int n,m;

int grad[lmax];

inline void read()
{
    int x,y;

    f>>n>>m;

    for (int i=1;i<=m;i++)
      {
          f>>x>>y;

          v[x].push_back(y);

          grad[y]++;
      }
}

inline void solve()
{
    vector <int>::iterator it;

    for (int i=1;i<=n;i++)
      if (grad[i]==0)
       g<<i<<" ";

    for (int i=1;i<=n;i++)
      for (it=v[i].begin();it<v[i].end();it++)
         {
             grad[*it]--;

             if (grad[*it]==0)
              g<<*it<<" ";
         }

}

int main()
{

    read();

    solve();


   f.close();
   g.close();
}