Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stack>
- #include <vector>
- #include <cstdio>
- #include <cstdlib>
- using namespace std;
- int time,color[100];
- vector<int> gf[100];
- stack<int>order;
- void dfs(int u)
- {
- int sz,v;
- color[u]=1;
- sz=gf[u].size();
- for(v=0;v<sz;v++)
- {
- if(color[gf[u][v]]==0)
- dfs(gf[u][v]);
- }
- order.push(u);
- }
- int main()
- {
- int n,e,i,j,k,a,b;
- scanf("%d %d",&n,&e);
- for(i=1;i<=n;i++)
- gf[i].clear();
- for(i=1;i<=e;i++)
- {
- scanf("%d %d",&a,&b);
- gf[a].push_back(b);
- }
- for(i=1;i<=n;i++)
- color[i]=0;
- for(i=1;i<=n;i++)
- {
- if(color[i]==0)
- dfs(i);
- }
- printf("sorted list: ");
- while(!order.empty())
- {
- int tmp = order.top();
- order.pop();
- printf("%d ",tmp);
- }
- printf("\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement