Pagini recente » Rating Victor Dragos (Victor280605) | Cod sursa (job #1531415) | Cod sursa (job #3254567) | Cod sursa (job #3151289) | Cod sursa (job #1172380)
#include <iostream>
#include <fstream>
#include <cstring>
#include <vector>
#define inFile "sortaret.in"
#define outFile "sortaret.out"
#define nMax 50003
using namespace std;
int n,m,dreapta[nMax],deq[nMax],ct;
vector<int> w[nMax];
void sortareTopologica()
{
vector<int>::iterator j;
int i,aux;
for(i=1;i<=n;i++)
if(dreapta[i]==0) deq[++ct]=i;
for(i=1;i<=n;i++)
{
aux=deq[i];
for(j=w[aux].begin();j!=w[aux].end();j++)
{
dreapta[*j]--;
if(dreapta[*j]==0) deq[++ct]=*j;
}
}
}
int main()
{
int a,b,i;
ifstream fin(inFile);
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>a>>b;
w[a].push_back(b);
dreapta[b]++;
}
fin.close();
sortareTopologica();
ofstream fout(outFile);
for(i=1;i<=n;i++)
fout<<deq[i]<<" ";
fout.close();
}