Pagini recente » Cod sursa (job #2576419) | Cod sursa (job #2679144) | Cod sursa (job #98110) | Cod sursa (job #2942400) | Cod sursa (job #1022029)
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
#define MAXN 50100
int N, M;
int deg[MAXN], Q[MAXN];
vector<int> G[MAXN];
ifstream f("sortaret.in");
ofstream g("sortaret.out");
void solve(){
vector<int> :: iterator it;
for (int i = 1; i <= N; i++)
if(deg[i] == 0){
Q[++Q[0]] = i;
}
while(Q[0] != 0){
int index = Q[Q[0]--];
g << index << " ";
for(it = G[index].begin(); it != G[index].end(); it++){
deg[*it]--;
if (deg[*it] == 0)
Q[++Q[0]] = *it;
}
}
}
void read(){
f >> N >> M;
for(int i = 0; i < M; i++){
int x, y;
f >> x >> y;
G[x].push_back(y);
deg[y]++;
}
}
int main() {
read();
solve();
f.close();
g.close();
return 0;
}