Pagini recente » Cod sursa (job #1338260) | Cod sursa (job #3235002) | Cod sursa (job #550700) | Cod sursa (job #832210) | Cod sursa (job #2504388)
#include <bits/stdc++.h>
#define NMAX 50005
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int nr[NMAX],n,m;
queue <int> sol;
vector <int> graph[NMAX];
vector<int>::iterator it;//iterator folosit pentru parcurgerea vectorului
int main()
{
f>>n>>m;
int i,x,y,sus;
for(i=1;i<=m;i++)
{
f>>x>>y;
graph[x].push_back(y);// y succede lui x
nr[y]++;
}
for(i=1;i<=n;i++)
{
if(!nr[i]) sol.push(i);
}
while(!sol.empty())
{
sus=sol.front();
g<<sus<<' ';
sol.pop();
for (it = graph[sus].begin(); it != graph[sus].end(); ++it)
{
// cout << ' ' << *it;
nr[*it]--;
if(!nr[*it])//daca nu mai are ascendent yays
sol.push(*it);
}
}
return 0;
}