Pagini recente » Borderou de evaluare (job #1457480) | Borderou de evaluare (job #2551425) | Cod sursa (job #2537839)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector <int> muchie[50001];
int q[50001], grad[50001];
int n, m, k;
int main()
{
fin >> n >> m;
int i, x, y, alfa, j;
for (i = 1; i<=m; i++)
{
fin >> x >> y;
muchie[x].emplace_back(y);
grad[y]++;
}
for (i = 1; i<=n; i++)
if (grad[i] == 0)
{
k++;
q[k] = i;
}
for (i = 1; i<=n; i++)
{
alfa = q[i];
for (j = 0; j<muchie[alfa].size(); j++)
{
grad[ muchie[alfa][j]]--;
if (grad[ muchie[alfa][j]] == 0)
{
k++;
q[k] = muchie[alfa][j];
}
}
}
for (i = 1; i<=n; i++)
fout << q[i] << ' ';
return 0;
}