Advertisement
make_treap

ioiiii

Mar 29th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.66 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];
  6. vector <int> V[1<<10];
  7. queue <int> Q;
  8. int main()
  9. {
  10. f>>n;
  11. for(i=1;i<=n;++i)
  12. {
  13. f>>x;
  14. V[i].push_back(x);
  15. fr[x]++;
  16. }
  17. for(i=1;i<=n;++i)
  18. if(!fr[i]) Q.push(i);
  19. while(!Q.empty())
  20. {
  21. x=Q.front();
  22. Q.pop();
  23. for(i=0;i<V[x].size();++i)
  24. {
  25. fr[V[x][i]]--;
  26. if(!fr[V[x][i]]) Q.push(V[x][i]);
  27. }
  28. }
  29. for(i=1;i<=n;++i) nr+=(fr[i]>0);
  30. g<<nr<<'\n';
  31. for(i=1;i<=n;++i)
  32. if(fr[i]) g<<i<<' ';
  33. return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement