Pagini recente » Cod sursa (job #2378302) | Cod sursa (job #2052554) | Cod sursa (job #2583136) | Cod sursa (job #1658680) | Cod sursa (job #1336275)
#include <fstream>
#include <vector>
#define nmax 50005
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m;
int grad[nmax],viz[nmax];
int sol[nmax],nr;
vector <int> v[nmax];
void dfs(int nod)
{
viz[nod]=1;
for (vector <int> :: iterator it =v[nod].begin();it!=v[nod].end();it++) {
if (!viz[*it]) {
dfs(*it);
}
}
sol[++nr]=nod;
}
int main()
{
int i,j,a,b;
f>>n>>m;
for (i=1;i<=m;i++) {
f>>a>>b;
grad[b]++;
v[a].push_back(b);
}
for (i=1;i<=n;i++)
if (grad[i]==0) {
dfs(i);
}
for (i=nr;i>=1;i--) g<<sol[i]<<' ';
return 0;
}