Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- vector<int> graf[100010];
- int veze[100010];
- int qu[100010];
- bool mark[100010];
- int q = 0;
- void topolosko(int x)
- {
- //mark[x] = true;
- for(int i = 0; i < q; i++)
- {
- for(int p = 0; p < graf[qu[i]].size(); p++)
- {
- int t = graf[qu[i]][p];
- veze[t]--;
- if(veze[t] == 0) qu[q++] = t;
- }
- }
- }
- int main()
- {
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- int n, m;
- cin >> n >> m;
- for(int i = 0; i< m; i++)
- {
- int a, b;
- cin >> a >> b;
- graf[a].push_back(b);
- veze[b]++;
- }
- for(int i = 1; i <= n; i++)
- {
- if(veze[i] == 0) qu[q++] = i;
- }
- topolosko(qu[0]);
- for(int i=0; i < q; i++) cout << qu[i] << " ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement