Pagini recente » Cod sursa (job #2920754) | Cod sursa (job #2476607) | Cod sursa (job #1547157) | Cod sursa (job #5448) | Cod sursa (job #2487453)
#include <fstream>
#include <list>
using namespace std;
int main()
{
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
list<unsigned int> * adjlist;
list<unsigned int> q;
unsigned int * indeg;
unsigned int v, i, j;
fin >> v >> i;
indeg = new unsigned int[v + 1]();
adjlist = new list<unsigned int>[v + 1];
while(fin >> i >> j){
adjlist[i].push_back(j);
indeg[j]++;
}
for(i = 1; i <= v; i++){
if(indeg[i] == 0){
q.push_back(i);
}
}
while(q.size()){
i = q.front();
` q.pop_front();
fout << i << " ";
for(list<unsigned int>::iterator it = adjlist[i].begin(); it != adjlist[i].end(); it++){
if(--indeg[*it] == 0){
q.push_back(*it);
}
}
}
return 0;
}