Mai intai trebuie sa te autentifici.
Cod sursa(job #2681043)
Utilizator | Data | 4 decembrie 2020 20:23:36 | |
---|---|---|---|
Problema | Sortare topologica | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.83 kb |
//
// main.cpp
// probleme2018-2019
#include <fstream>
#include <iostream>
#include <math.h>
#include <set>
#include <queue>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
int n, m, gint[50001], gies[50001], ord[50001], ramas, p, u, k, f[50001];
vector <int> l[500001];
int coada[50001];
void parcurgere(int nod)
{
k++;
coada[k] = nod;
f[nod] = 1;
for (int j = 0; j< gies[nod]; j++)
{
gint[l[nod][j]]--;
if(gint[l[nod][j]] == 0)
parcurgere(l[nod][j]);
}
}
int main()
{
int i, j, x, y;
fin>> n >> m;
for (i = 1; i<= m; i++)
{
fin >> x >> y;
gint[y]++;
gies[x]++;
l[x].push_back(y);
}
parcurgere(1);
for (i = 1; i<= n; i++)
fout << coada[i] << " ";
}