Pagini recente » Cod sursa (job #2554572) | Cod sursa (job #2092680) | Cod sursa (job #1077498) | Cod sursa (job #891313) | Cod sursa (job #1027227)
#include <fstream>
#include <vector>
#define DIM 50011
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m,sol[DIM];
bool viz[DIM],viz1[DIM];
vector<int> L[DIM];
void dfs(int nod){
viz[nod]=true;
for(register int i=0;i<L[nod].size();i++){
if(!viz[L[nod][i]]){
dfs(L[nod][i]);
}
}
sol[++sol[0]]=nod;
}
int main(void){
register int i,j,k,x,y;
f>>n>>m;
for(i=1;i<=m;i++){
f>>x>>y;
L[x].push_back(y);
viz1[y]=true;
}
for(i=1;i<=n;i++){
if(!viz1[i] && !viz[i])
dfs(i);
j=1,k=sol[0];
while(j<=k)
x=sol[j],sol[j++]=sol[k],sol[k--]=x;
}
for(i=1;i<=n;i++)
g<<sol[i]<<" ";
f.close();
g.close();
return 0;
}