Guest User

Untitled

a guest
Oct 16th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. vector<int> tsv;
  4. vector<int> road[66666];
  5. bool visit[66666];
  6. int tmp=0;
  7. void dfs(int src)
  8. {
  9. tmp += tsv[src];
  10. for(int j=0;j<road[src].size();j++)
  11. {
  12. if(!visit[road[src][j]])
  13. {
  14. visit[road[src][j]]=true;
  15. dfs(road[src][j]);
  16. }
  17. }
  18. return;
  19. }
  20.  
  21. int main()
  22. {
  23. int c,node,edge,val,row,col,ans;
  24. cin >> c;
  25. while(c--)
  26. {
  27. cin >> node >> edge;
  28. for(int i=0;i<node;i++)
  29. {
  30. cin >> val;
  31. tsv.push_back(val);
  32. }
  33. for(int i=0;i<edge;i++)
  34. {
  35. cin >> row >> col;
  36. road[row].push_back(col);
  37. road[col].push_back(row);
  38. }
  39. ans=0;
  40. for(int i=0;i<node;i++)
  41. {
  42. tmp=0;
  43. if(!visit[i])
  44. {
  45. visit[i]=true;
  46. dfs(i);
  47. }
  48. if(tmp > ans)
  49. ans = tmp;
  50. }
  51. cout << ans << '\n';
  52. for(int i=0; i<node; i++)
  53. {
  54. visit[i] = false;
  55. road[i].clear();
  56. }
  57. tsv.clear();
  58. }
  59. return 0;
  60. }
Add Comment
Please, Sign In to add comment