Pagini recente » Monitorul de evaluare | Rating Iulia Udrea (iulia_udrea) | Rating Patricia Papura (pati_mj) | Cod sursa (job #615098) | Cod sursa (job #2681079)
//
// 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 && f[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);
}
for (i = 1; i<= n; i++)
if(f[i] == 0)
parcurgere(i);
for (i = 1; i<= n; i++)
fout << coada[i] << " ";
}