-
Notifications
You must be signed in to change notification settings - Fork 0
/
contaminante.cpp
62 lines (60 loc) · 1.29 KB
/
contaminante.cpp
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <bits/stdc++.h>
using namespace std;
void sol(char *cad,int f,int c,int maxf,int maxc){
cad[f*maxc+c] = 'T';
// verificacion de arriba
if( f-1 >= 0){
if(cad[(f-1)*maxc+c] == 'A'){
sol(cad,f-1,c,maxf,maxc);
}
}
// verificacion de derecha
if(c+1 < maxc){
if(cad[f*maxc+c+1] == 'A'){
sol(cad,f,c+1,maxf,maxc);
}
}
// verificacion de abajo
if(f+1<maxf){
if( cad[(f+1)*maxc+c] == 'A'){
sol(cad,f+1,c,maxf,maxc);
}
}
//verificacion de izquierda
if(c-1 >= 0){
if( cad[f*maxc+c-1] == 'A'){
sol(cad,f,c-1,maxf,maxc);
}
}
}
void mostrar(char *cad,int f, int c){
for(int i = 0; i< f; i++){
for(int j= 0 ; j<c; j++){
cout<<cad[i*c+j];
}
cout<<"\n";
}
}
int main(){
int f,c;
cin>>f;
cin>>c;
char dato;
char matriz[f][c];
for( int i = 0 ; i< f; i++){
for( int j = 0 ; j < c; j++){
cin>>dato;
matriz[i][j] = dato;
}
}
// recorremos la matriz
for(int i = 0; i< f ; i++){
for(int j = 0 ; j< c; j++){
if( matriz[i][j] == 'T'){
sol((char *)matriz,i,j,f,c);
}
}
}
mostrar((char *)matriz,f,c);
return 0;
}