Pagini recente » Cod sursa (job #371472) | Cod sursa (job #215215) | Cod sursa (job #258260) | Cod sursa (job #1456552) | Cod sursa (job #848681)
Cod sursa(job #848681)
#include <fstream>
#include <vector>
using namespace std;
#define Amax 50001
ifstream fi("sortaret.in");
ofstream fo("sortaret.out");
int i,n,m,gr[Amax],l[Amax]; vector<int> G[Amax];
void readData(){
int a,b;
fi >> n >> m;
for (i=1; i<=m; i++)
fi >> a >> b, G[a].push_back(b), gr[b]++;
}
void solve(){
int x; vector<int>::iterator it;
for (i=1; i<=n; i++) if (!gr[i]) l[++l[0]]=i;
for (i=1; i<=n; i++){
x=l[i];
for (it=G[x].begin(); it != G[x].end(); it++){
gr[*it]--; if (!gr[*it]) l[++l[0]]=*it;
}
}
}
void writeData(){
for (i=1; i<=n; i++) fo << l[i] << " ";
}
int main(){
readData();
solve();
writeData();
return 0;
}