Advertisement
iletavcioski

Rizik

Mar 1st, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. #include<iostream>
  2. #include<vector>
  3. using namespace std;
  4. vector<vector<int> >v;
  5. vector<int> visited(100002,0);
  6. vector<bool> vis(100002,false);
  7. int paricki;
  8. void dfs(int x)
  9. {
  10. if(vis[x])
  11. return;
  12. if(visited[x]==0&&vis[x]==false)
  13. {
  14. paricki++;
  15. }
  16. vis[x]=true;
  17.  
  18. for(int i=0;i<v[x].size();i++)
  19. {
  20. dfs(v[x][i]);
  21. }
  22.  
  23. }
  24. int main()
  25. {
  26. int n,a1,a2,k;
  27.  
  28. cin>>n>>a1>>a2>>k;
  29.  
  30. vector<int > vv;
  31. v.insert(v.begin(),n+1,vv);
  32. for(int i=0;i<a1;i++)
  33. {
  34. int a;
  35. cin>>a;
  36. a--;
  37. visited[a]=2;
  38. vv.push_back(a);
  39. }
  40. for(int i=0;i<a2;i++)
  41. {
  42. int a;
  43. cin>>a;
  44. a--;
  45. visited[a]=1;
  46. vis[a]=true;
  47. }
  48. int m;
  49. cin>>m;
  50. for(int i=0;i<m;i++)
  51. {
  52. int a,b;
  53. cin>>a>>b;
  54. a--;b--;
  55. v[a].push_back(b);
  56. v[b].push_back(a);
  57. }
  58.  
  59. for(int i=0;i<vv.size();i++)
  60. {
  61. dfs(vv[i]);
  62. }
  63. cout<<min(paricki,k)<<endl;
  64. return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement