Pagini recente » Cod sursa (job #573593) | Borderou de evaluare (job #2894865) | Borderou de evaluare (job #842945) | Cod sursa (job #2873861) | Cod sursa (job #1010822)
#include<fstream>
#include<queue>
#include<vector>
#define dim 50008
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int i,n,x,y,vecin,m,grad[dim],s[dim];
vector< int >G[dim];
void top () {
int i;
for(i=1;i<=n;++i){
if(grad[i]==0)
s[++s[0]]=i;
}
for(i=1;i<=n;++i){
x=s[i];
for(int j=0;j<G[x].size();++j){
vecin=G[x][j];
--grad[vecin];
if(!grad[vecin])
s[++s[0]]=vecin;
}
}
for(i=1;i<=n;++i){
g<<s[i]<<" ";
}
}
int main () {
f>>n>>m;
for(i=1;i<=m;++i){
f>>x>>y;
G[x].push_back(y);
grad[y]++;
}
top();
return 0;
}