Pagini recente » Cod sursa (job #59360) | Cod sursa (job #1766403) | Cod sursa (job #2233056) | Cod sursa (job #705352) | Cod sursa (job #975821)
Cod sursa(job #975821)
#include<fstream>
#include<vector>
#define MAXN 50010
#define MAXM 100000
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
int gr[MAXN],n,m,q[MAXN];
vector <int> g[MAXN];
void citire()
{
int a,b;
fin>>n>>m;
for(int i=1;i<=m;i++)
{
fin>>a>>b;
g[a].push_back(b);
gr[b]++;
}
}
void rezolvare()
{
int nr=0;
for(int i=1;i<=n;i++)
{
if(gr[i]==0)
q[++nr]=i;
}
int i=0;
while(i<=nr)
{
i++;
for(vector<int>::iterator it=g[q[i]].begin();it!=g[q[i]].end();it++)
{
gr[*it]--;
if(gr[*it]==0)
{
q[++nr]=(*it);
}
}
}
}
void afisare()
{
for(int i=1;i<=n;i++)
{
fout<<q[i]<<' ';
}
}
int main()
{
citire();
rezolvare();
afisare();
return 0;
}