Pagini recente » Cod sursa (job #313472) | Cod sursa (job #1227609) | Cod sursa (job #1555443) | Cod sursa (job #2680279) | Cod sursa (job #1921735)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector <int> g[50001];
int n, deg[50001]={0}, q[50001];
void citire()
{
int m, i, j;
fin>>n>>m;
while(m)
{
m--;
fin>>i>>j;
g[i].push_back(j);
deg[j]++;
}
fin.close();
}
void sortare()
{
vector <int> :: iterator it;
int k, i;
for(i=1; i<=n; i++)
if(!deg[i])
q[++q[0]]=i;
for(i=1; i<=n; i++)
{
k=q[i];
for(it=g[k].begin(); it!=g[k].end(); it++)
{
deg[*it]--;
if(!deg[*it])
q[++q[0]]=*it;
}
}
}
void afisare()
{
for(int i=1; i<=n; i++)
fout<<q[i]<<' ';
fout.close();
}
int main()
{
citire();
sortare();
afisare();
return 0;
}