Pagini recente » Cod sursa (job #255641) | Cod sursa (job #230960) | Cod sursa (job #2925785) | Cod sursa (job #2534373) | Cod sursa (job #2636986)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
const int NMAX = 50005;
vector <int> graph[NMAX];
vector <int> topo;
bitset <NMAX> seen;
int n, m;
void dfs(int node)
{
seen[node] = 1;
for(auto& x : graph[node])
if(seen[x] == 0)
dfs(x);
topo.push_back(node);
}
int main()
{
int i, j, x, y;
fin >> n >> m;
for(i = 1;i <= m;i++)
{
fin >> x >> y;
graph[x].push_back(y);
}
cout << "*";
for(i = 1;i <= n;i++)
if(seen[i] == 0)
dfs(i);
cout << "*";
reverse(topo.begin(), topo.end());
cout << topo.size();
for(auto& i : topo)
fout << i << " ";
return 0;
}