Pagini recente » Cod sursa (job #1013068) | Monitorul de evaluare | Cod sursa (job #1991374) | Rating Mercea Vanessa (Vanessa) | Cod sursa (job #1554042)
#include <fstream>
#include <list>
#include <cstring>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
list<int> Graf[50001], L, S;
int incomingNodes[50001];
int N, M;
void citire()
{
int i, x, y;
f >> N >> M;
for (i = 0;i < M;i++)
{
f >> x >> y;
incomingNodes[y] += 1;
Graf[x].push_back(y);
}
for (i = 1;i <= N;i++)
if (incomingNodes[i]==0)
S.push_back(i);
}
void afisare()
{
for (list<int>::iterator i = L.begin();i != L.end();i++)
g << *i << " ";
}
int main()
{
citire();
int n, m;
while (!S.empty())
{
n = *(S.begin());
S.pop_front();
L.push_back(n);
while (!Graf[n].empty())
{
m = *(Graf[n].begin());
incomingNodes[m]--;
if(incomingNodes[m]==0) S.push_back(m);
Graf[n].pop_front();
}
}
afisare();
return 0;
}