Pagini recente » Cod sursa (job #1682189) | Cod sursa (job #3246014) | Cod sursa (job #3199431) | Cod sursa (job #324851) | Cod sursa (job #2425528)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int main()
{
int n,m;
f>>n>>m;
vector < vector <int> > Graph(n+1);
vector <int> viz(n+1,0), G(n+1,0);
queue <int> Q;
for (int i=1;i<=m;i++)
{
int x,y;
f>>x>>y;
Graph[x].push_back(y);
G[y]++;
}
for (int i=1;i<=n;i++)
{
if (G[i]==0)
{
Q.push(i);
viz[i]=1;
}
}
while(!Q.empty())
{
int nod=Q.front();
Q.pop();
g<<nod<<' ';
for (auto j:Graph[nod])
{
if (viz[j]==0)
{
viz[j]=1;
Q.push(j);
}
}
}
return 0;
}