Cod sursa(job #3219973)

Utilizator IoanMasterUngureanu Ioan IoanMaster Data 1 aprilie 2024 21:30:06
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <bits/stdc++.h>
#include <iterator>

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

int n, m;
bool Used[50001];
struct Node
{
  int info;
  Node *next;
};

Node *head, *lista[50001];

void DFS(int node)
{
  Node *start = lista[node];

  while (start)
  {
    if (!Used[start->info])
    {
      Used[start->info] = 1;
      DFS(start->info);
    }

    start = start->next;
  }

  Node *nou = new Node;
  nou->info = node;
  nou->next = head;

  head = nou;
}

int main()
{
  fin >> n >> m;
  int a, b, i;

  for (i = 1; i <= m; i++)
  {
    fin >> a >> b;

    Node *nou = new Node;
    nou->info = b;
    nou->next = lista[a];
    lista[a] = nou;
  }

  for (i = 1; i <= n; i++)
  {
    if (!Used[i])
      DFS(i);
  }

  Node *parcurgere = head;

  while (parcurgere)
  {
    fout << parcurgere->info << ' ';

    parcurgere = parcurgere->next;
  }

  return 0;
}