Pagini recente » Cod sursa (job #526896) | Cod sursa (job #2655409) | Cod sursa (job #1347198) | Cod sursa (job #1090417) | Cod sursa (job #3261624)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
const int NMAX = 5e4+9;
vector<int>g[NMAX];
queue<int>q;
int n,m,i,j;
int in[NMAX];
void input ();
void topsort ();
int main()
{
input ();
topsort();
return 0;
}
void topsort ()
{
for (i=1; i<=n; i++)
{
if (in[i]==0)
{
q.push (i);
}
}
while (!q.empty ())
{
int node=q.front();
q.pop();
fout<<node<<' ';
for (auto it : g[node])
{
in[it]--;
if (in[it]==0)
{
q.push (it);
}
}
}
}
void input ()
{
fin>>n>>m;
for (i=1; i<=m; i++)
{
int a,b;
fin>>a>>b;
g[a].push_back (b);
in[b]++;
}
}