Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- vector<int> tsv;
- vector<int> road[66666];
- bool visit[66666];
- int tmp=0;
- void dfs(int src)
- {
- tmp += tsv[src];
- for(int j=0;j<road[src].size();j++)
- {
- if(!visit[road[src][j]])
- {
- visit[road[src][j]]=true;
- dfs(road[src][j]);
- }
- }
- return;
- }
- int main()
- {
- int c,node,edge,val,row,col,ans;
- cin >> c;
- while(c--)
- {
- cin >> node >> edge;
- for(int i=0;i<node;i++)
- {
- cin >> val;
- tsv.push_back(val);
- }
- for(int i=0;i<edge;i++)
- {
- cin >> row >> col;
- road[row].push_back(col);
- road[col].push_back(row);
- }
- ans=0;
- for(int i=0;i<node;i++)
- {
- tmp=0;
- if(!visit[i])
- {
- visit[i]=true;
- dfs(i);
- }
- if(tmp > ans)
- ans = tmp;
- }
- cout << ans << '\n';
- for(int i=0; i<node; i++)
- {
- visit[i] = false;
- road[i].clear();
- }
- tsv.clear();
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment