Advertisement
make_treap

vot1

Mar 29th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.55 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. ifstream f("vot1.in");
  4. ofstream g("vot1.out");
  5. int n,nr,i,x,fr[1<<10],V[1<<10];
  6. queue <int> Q;
  7. int main()
  8. {
  9. f>>n;
  10. for(i=1;i<=n;++i)
  11. {
  12. f>>V[i];
  13. fr[V[i]]++;
  14. }
  15. for(i=1;i<=n;++i)
  16. if(!fr[i]) Q.push(i);
  17. while(!Q.empty())
  18. {
  19. x=Q.front();
  20. Q.pop();
  21. fr[V[x]]--;
  22. if(!fr[V[x]]) Q.push(V[x]);
  23. }
  24. for(i=1;i<=n;++i) nr+=(fr[i]>0);
  25. g<<nr<<'\n';
  26. for(i=1;i<=n;++i)
  27. if(fr[i]) g<<i<<' ';
  28. return 0;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement