Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int cantX;
- int dx[] = {1, 0, -1, 0};
- int dy[] = {0, 1, 0, -1};
- bool visit[4][4];
- bool esValido(int x, int y)
- {
- return 0 <= x && x < 4 && 0 <= y && y < 4;
- }
- void floodfill(int x, int y, const vector <string> &cajita)
- {
- visit[x][y] = true;
- cantX++;
- for(int i=0; i<4; i++)
- {
- int x2 = x+dx[i];
- int y2 = y+dy[i];
- if(esValido(x2, y2) && visit[x2][y2] == false && cajita[x2][y2] == 'X')
- {
- floodfill(x2, y2, cajita);
- }
- }
- }
- string plastetris(vector <string> cajita)
- {
- int componentes = 0;
- for(int i=0; i<4; i++)
- {
- for(int j=0; j<4; j++)
- {
- /**
- Si la celda actual es una x
- Y no fue visitada antes
- **/
- if(cajita[i][j] == 'X' && visit[i][j] == false)
- {
- componentes++;
- cantX = 0;
- floodfill(i, j, cajita);
- }
- }
- }
- if(componentes == 1 && cantX == 4)
- return "SI";
- return "NO";
- }
- /**
- //Función main auxiliar para testear
- int main()
- {
- vector <string> cajita(4);
- for(int i=0; i<4; i++)
- cin >> cajita[i];
- cout << plastetris(cajita) << endl;
- return 0;
- }**/
Advertisement
Add Comment
Please, Sign In to add comment