Nu aveti permisiuni pentru a descarca fisierul grader_test4.in
Cod sursa(job #2152305)
Utilizator | Data | 5 martie 2018 13:43:12 | |
---|---|---|---|
Problema | Sortare topologica | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.83 kb |
#include <bits/stdc++.h>
using namespace std;
/// SORTARE TOPOLOGICA CU DFS ///
const int Nmax = 50005;
vector < unsigned int > L[Nmax];
bool viz[Nmax];
int n, m;
int ord[Nmax], lg;
void Read()
{
ifstream fin("sortaret.in");
fin >> n >> m;
int x, y;
for (int i = 1; i <= m; i++)
{
fin >> x >> y;
L[x].push_back(y);
}
fin.close();
}
void DFS(int k)
{
viz[k] = true;
for (auto i : L[k])
if (!viz[i])
DFS(i);
ord[++lg] = k;
}
void SortTop()
{
int i;
for (i = 1; i <= n; i++)
if (!viz[i])
DFS(i);
ofstream fout("sortaret.out");
for (i = n; i >= 1; i--)
fout << ord[i] << " ";
fout.close();
}
int main()
{
Read();
SortTop();
return 0;
}