Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- int dx[] = {0, 0, -1, 1}; ///Esto se declara
- int dy[] = {-1, 1, 0, 0}; ///siempre global
- struct Grafo
- {
- vector <string> m;
- vector <vector <bool> > v; ///matriz de visitados
- int alto, ancho;
- bool esValido(int i, int j)
- {
- return (0 <= i && i < alto+2 && 0 <= j && j < ancho+2);
- }
- void floodfill(int i, int j)
- {
- v[i][j] = true;
- ///GUARDA CON EL RUNTIME ERROR!!!
- for(int k=0; k<4; k++)
- {
- int i2 = i+dy[k];
- int j2 = j+dx[k];
- if(esValido(i2, j2) && m[i2][j2] == '_' && !v[i2][j2]) ///Si puedo recorrer la celda de arriba
- {
- floodfill(i2, j2);
- }
- }
- }
- void leer()
- {
- cin >> alto >> ancho;
- m = vector <string> (alto+2); ///Matriz con input
- v = vector <vector <bool> > (alto+2, vector <bool> (ancho+2, false)); ///Matriz de visitados
- m[0] = string(ancho+2, '_'); ///Constructor del string
- m[alto+1] = string(ancho+2, '_'); ///Constructor del string
- for(int i=1; i<alto+1; i++)
- {
- cin >> m[i];
- m[i] = "_" + m[i] + "_";
- }
- floodfill(0, 0);
- ///Responder las consultas
- }
- };
- int main()
- {
- Grafo g;
- g.leer();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement