Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #define MAX 100
- using namespace std;
- vector < vector < int > > grafo;
- int visitados[MAX];
- char alfabeto[]="abcdefghijklmnopqrstuvwxyz";
- string comp;
- void dfs(int u){
- visitados[u]=1;
- int z=0;
- comp+=alfabeto[u];
- for(int i=0;i<grafo[u].size();i++){
- int v = grafo[u][i];
- if(!visitados[v]){
- dfs(v);
- }
- }
- }
- int main(){
- int n,m,t;
- int cont=0,caso=0;
- cin >> t;
- while(t--){
- cin >> n >> m;
- cont=0;
- grafo.assign(MAX, vector < int > ());
- memset(visitados, 0, sizeof visitados);
- while(m--){
- char a,b;
- cin >> a >> b;
- int x,y;
- for(int i=0;i<strlen(alfabeto);i++){
- if(a==alfabeto[i]){
- x=i;
- break;
- }
- }
- for(int i=0;i<strlen(alfabeto);i++){
- if(b==alfabeto[i]){
- y=i;
- break;
- }
- }
- grafo[x].push_back(y);
- grafo[y].push_back(x);
- }
- printf("Case #%d:\n",++caso);
- for(int i=0;i<n;i++){
- if(!visitados[i]){
- dfs(i);
- cont++;
- sort(comp.begin(),comp.end());
- for(int j=0;j<comp.size();j++){
- cout << comp[j] << ",";
- }
- comp.clear();
- putchar('\n');
- }
- }
- printf("%d connected components\n\n",cont);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement