Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define maxn 500
- #define inf 0x3F3F3F3F
- vector <int> g[maxn];
- bool vis[maxn];
- int n, m, a, b;
- int cnt = 0;
- void dfs(int x){
- vis[x] = true;
- cnt++;
- for(int i = 0; i < g[x].size(); i++){
- int y = g[x][i];
- if(vis[y] == false)
- dfs(y);
- }
- }
- void bfs(int x){
- memset(vis, false, sizeof vis);
- vis[x] = true;
- queue < int > q;
- q.push(x);
- while(!q.empty()){
- printf("%d ", q.front());
- int atual = q.front(); q.pop();
- for(int i = 0; i < g[atual].size(); i++){
- int adj = g[atual][i];
- if(!vis[adj]){
- vis[adj] = true;
- q.push(adj);
- }
- }
- }
- }
- int main()
- {
- int t, inicial;
- cin >> t;
- while(t--){
- cnt = 0;
- memset(vis, 0, sizeof vis);
- cin >> inicial;
- scanf("%d %d", &n, &m);
- for(int i = 0; i < m; i++){
- scanf("%d %d", &a, &b);
- g[a].push_back(b);
- g[b].push_back(a);
- }
- dfs(inicial);
- cnt--;
- cout << cnt*2 << endl;
- for(int i = 0; i < n; i++)g[i].clear();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement