Pagini recente » Cod sursa (job #2631865) | Cod sursa (job #2957509) | Cod sursa (job #2693098) | Cod sursa (job #2471136) | Cod sursa (job #2531810)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector<int>l[500001];
bitset<500001>bifa;
int n, m, i, j, suma[500001], pas;
queue<int>q;
void topSort()
{
while(pas)
{
for(int i = 1; i <= n; i++)
{
if(!suma[i] && !bifa[i])
{
fout << i << ' ';
pas--;
bifa[i] = 1;
q.push(i);
}
}
while(!q.empty())
{
int i = q.front();
for(const int it : l[i])
suma[it]--;
q.pop();
}
}
}
int main()
{
fin >> n >> m;
pas = n;
for(int i = 1; i <= m; i++)
{
int x, y;
fin >> x >> y;
l[x].push_back(y);
suma[y]++;
}
topSort();
return 0;
}