language: C++ (gcc-4.3.4)
date: 108 days 23 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
 
int cont, n, m, casos;
bool vis[30];
char matriz[30][30];
char linea[30];
int matrizad[30][30];
char ancho;
 
void dfs(int x){
        vis[x]=1;
        for(int i=0;i<n;i++) if(vis[i]==0 && matrizad[x][i]==1) dfs(i);
}
 
int main(){
        cin >> casos;
        gets(linea); gets(linea);
        while(casos--){
                scanf("%s",&ancho);
                cout << ancho;
                n=ancho-'A'+1;
                memset(vis,0,sizeof(vis));
                memset(matrizad,0,sizeof(matrizad));
                bool espacio=0;
                linea[0]=0;
                while(gets(linea)&&linea[0]){
                        bool espacio=0;
                        for(int j=0;j<2;j++) if(linea[j]==' ') espacio=1;
                        if(espacio){
                                for(int p=0;p<n;p++) if(vis[p]==0) {dfs(p);cont++;}                     
                        }
                        else{
                                matrizad[linea[0]-'A'][linea[1]-'A']=1;
                                matrizad[linea[1]-'A'][linea[0]-'A']=1;
                                }
                        
                        }
                }
                for(int i=0;i<n;i++)for(int j=0;j<n;i++) {cout<<matrizad[i][j];if(j==n-1)cout<<endl;}
        return 0;
        
        }