Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Created by Henrique Navarro on 27/05/2018.
- //
- #include <bits/stdc++.h>
- #define ll long long int
- #define cl(x, v) memset((x), (v), sizeof(x))
- using namespace std;
- const int N = 2e3+5;
- vector <int> adj[N];
- int inc[N];
- queue <int> q;
- vector <int> khan;
- int n, e, a, b;
- int main () {
- while(scanf("%d%d", &n, &e) && n && e) {
- khan.clear();
- cl(inc,0);
- for (int i = 0; i < N; i++) adj[i].clear();
- for (int i = 0; i < e; i++) {
- scanf("%d%d", &a, &b);
- adj[a].push_back(b);
- inc[b]++;
- }
- for (int i = 1; i <= n; ++i) if (inc[i] == 0) q.push(i);
- while (!q.empty()) {
- int u = q.front();
- q.pop();
- khan.push_back(u);
- for (int v : adj[u])
- if (inc[v] > 0 and --inc[v] == 0)
- q.push(v);
- }
- for (int i = 0; i < khan.size()-1; i++) printf("%d ", khan[i]);
- printf("%d\n", khan[khan.size()-1]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement