Guest User

Untitled

a guest
Jun 18th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. #include<cstdio>
  2. #include<vector>
  3. #include<queue>
  4. using namespace std;
  5. vector<vector<int> >V;
  6. vector<bool>czy;
  7. vector<int>ile;
  8. priority_queue<int>Q;
  9. int n,m;
  10. int main()
  11. {
  12. scanf("%d%d",&n,&m);
  13. V.resize(n+1);
  14. czy.resize(n+1);
  15. ile.resize(n+1);
  16. for(int i=0;i<m;i++)
  17. {
  18. int a,b;
  19. scanf("%d%d",&a,&b);
  20. V[a].push_back(b);
  21. ile[b]++;
  22. }
  23. int wyp=n;
  24. vector<int>wyn;
  25. for(int i=1;i<=n;i++)
  26. {
  27. if(ile[i]==0)Q.push(i);
  28. }
  29. vector<int>Temp;
  30. while(!Q.empty())
  31. {
  32. wyn.push_back(Q.top());
  33. for(int i=0;i<V[Q.top()].size();i++)
  34. {
  35. int sasiad=V[Q.top()][i];
  36. if(ile[sasiad]>0)ile[sasiad]--;
  37. if(ile[sasiad]==0)Temp.push_back(sasiad);
  38. }
  39. Q.pop();
  40. for(int i=0;i<Temp.size();i++)
  41. {
  42. Q.push(Temp[i]);
  43. }
  44. Temp.clear();
  45. }
  46. if(wyn.size()==n)
  47. for(int i=0;i<wyn.size();i++)
  48. {
  49. printf("%d ",wyn[i]);
  50. }
  51. else
  52. {
  53. printf("NIE\n");
  54. }
  55. return 0;
  56. }
Add Comment
Please, Sign In to add comment