Pagini recente » Cod sursa (job #826654) | Borderou de evaluare (job #1567709) | Cod sursa (job #2712775) | Cod sursa (job #3252072) | Cod sursa (job #2157762)
#include <iostream>
#include <fstream>
#include <cmath>
#include <list>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m;
list <int> adj[1111];
int gint[1111];
int q[1111],p;
void rez()
{
for(int i=1;i<=n;++i)
if(!gint[i])
{
q[++p]=i;
}
int i=1;
while(i<=p)
{
int v=q[i];
list <int> ::iterator it;
for(it=adj[v].begin();it!=adj[v].end();++it)
{
int u=*it;
gint[u]--;
if(!gint[u])
q[++p]=u;
}
++i;
}
for(i=1;i<=p;++i)
g<<q[i]<<' ';
}
int main()
{f>>n>>m;
for(int i=1;i<=m;++i)
{
int x,y;
f>>x>>y;
adj[x].push_back(y);
gint[y]++;
}
rez();
return 0;
}