Pagini recente » Cod sursa (job #1078960) | Cod sursa (job #591706) | Cod sursa (job #904385) | Cod sursa (job #1973795) | Cod sursa (job #2576439)
#include <cstdio>
#include <vector>
#define verticesMax 51024
using namespace std;
int vertices,grade[verticesMax],vis[verticesMax];
vector <int> graph[verticesMax];
void read() {
int i,edges,x,y;
scanf("%d%d",&vertices,&edges);
for(i=0;i<edges;++i) {
scanf("%d%d",&x,&y);
--x;
--y;
graph[x].push_back(y);
++grade[y];
}
}
void del(int x) {
--grade[x];
if(!grade[x]&&!vis[x]) {
printf("%d ",x+1);
++vis[x];
for(auto a:graph[x]) {
del(a);
}
}
}
void solve() {
int i;
for(i=0;i<vertices;++i) {
if(!grade[i]&&!vis[i]) {
printf("%d ",i+1);
++vis[i];
for(auto a:graph[i]) {
del(a);
}
}
}
}
int main() {
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
read();
solve();
return 0;
}