Pagini recente » Cod sursa (job #1230585) | Cod sursa (job #2193326) | Cod sursa (job #54495) | Cod sursa (job #1499313) | Cod sursa (job #2140224)
#include <fstream>
#include <vector>
using namespace std;
vector <int>a[50002];
vector <int>::iterator l;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m;
int v[50002],coada[50002];
void citire()
{
f>>n>>m;
int x,y;
for(int i=1;i<=m;i++)
{
f>>x>>y;
a[x].push_back(y);
v[y]++;
}
}
void so()
{
int x;
for(int i=1;i<=n;i++)
{
if(v[i]==0)
{
coada[++coada[0]]=i;
}
}
for(int i=1;i<=n;i++)
{
x=coada[i];
for(l=a[x].begin();l<a[x].end();++l)
{
v[*l]--;
if(v[*l]==0)
{
coada[++coada[0]]=*l;
}
}
}
}
void scrie()
{
for(int i=1;i<=n;i++)
{
g<<coada[i]<<" ";
}
}
int main()
{
citire();
so();
scrie();
return 0;
}