Pagini recente » Borderou de evaluare (job #133087) | Cod sursa (job #2686243) | Cod sursa (job #1850162) | Cod sursa (job #2939053) | Cod sursa (job #2577308)
#include <bits/stdc++.h>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
const int NMAX=50005;
int n,m,x,y,d[NMAX];
vector<int>v[NMAX];
set<int>s;
inline void SortTop()
{
int nod;
for(int i=1;i<=n;i++)
if(d[i]==0)
s.insert(i);
while(s.size())
{
nod=*(s.begin());
s.erase(nod);
g<<nod<<" ";
for(auto i:v[nod])
{
d[i]--;
if(d[i]==0)
s.insert(i);
}
}
}
int main()
{
f>>n>>m;
for(int i=1;i<=m;i++)
{
f>>x>>y;
v[x].push_back(y);
d[y]++;
}
SortTop();
return 0;
}