Cod sursa(job #2358441)

Utilizator RazvanPanaiteRazvan Panaite RazvanPanaite Data 28 februarie 2019 09:08:32
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
#define DMAX 50010

using namespace std;

ifstream fin("sortaret.in");
ofstream fout("sortaret.out");

vector <int> V[DMAX];
vector <int> Sp;

int n;
int cate[DMAX];

void citire();

int main()
{int i,j,node;
 citire();
 for(i=1;i<=n;i++)
     if(!cate[i])
        Sp.push_back(i);
 for(i=0;i<n;i++)
     {node=Sp[i];
      for(j=0;j<V[node].size();j++)
          {cate[V[node][j]]--;
           if(!cate[V[node][j]])
              Sp.push_back(V[node][j]);
          }
     }
 for(i=0;i<n;i++)
     fout<<Sp[i]<<' ';
 fout<<'\n';
 return 0;
}
void citire()
{int m,i,x,y;
 fin>>n>>m;
 for(i=1;i<=m;i++)
     {fin>>x>>y;
      V[x].push_back(y);
      cate[y]++;
     }
}