Pagini recente » Cod sursa (job #2561203) | Cod sursa (job #2542673) | Cod sursa (job #2873962) | Borderou de evaluare (job #1296465) | Cod sursa (job #1262759)
#include <fstream>
#include <list>
#include <queue>
#define DIM 50001
using namespace std;
ifstream in ("sortaret.in");
ofstream out ("sortaret.out");
queue <int> cd;
list <int>nod[DIM];
int grd[DIM], n, m, a, b;
void solve()
{
int x;
for(int i=1; i<=n; ++i)
if(grd[i]==0) cd.push(i);
for(int i=1; i<=n; ++i)
{
x=cd.front();
for(list <int>::iterator j=nod[x].begin(); j!=nod[x].end(); ++j)
{
grd[*j]--;
if(grd[*j]==0)
cd.push(*j);
}
out<<x<<" ";
cd.pop();
}
out<<"\n";
}
int main()
{
in>>n>>m;
while(m--)
{
in>>a>>b;
nod[a].push_back(b);
grd[b]++;
}
solve();
return 0;
}