diberikan suatu grid n x m, cari area kumpulan "o" terbesar yang terhubung dari sisi (kanan/kiri/atas/bawah). "x" tidak bisa dilewatin. input 4 4 x o x x o o x o o o x x x x o o output 5 ini kodingannya, tp jdny infinite loop, salahnya di mana yaa? int X, Y; int check[10][10]={0}; int answer=0; int num = 0; void recursive(int y,char map[10][10],int x) { if (x < X) { if (map[y][x] == 'o') { if (check[y][x] == 0) { check[y][x] == 1; num++; if (check[y][x + 1] == 0) { recursive(y, map, x + 1); } if (check[y][x - 1] == 0) { recursive(y, map, x - 1); } if (check[y + 1][x] == 0) { recursive(y+1, map, x ); } if (check[y - 1][x ] == 0) { recursive(y-1, map, x ); } if (check[y][x + 1] == 1 && check[y][x - 1] == 1 && check[y - 1][x] == 1 && check[y + 1][x] == 1) { if (answer < num) { answer = num; cout << answer; num = 0; } } } } else { recursive(y, map, x + 1); } } else { recursive(y + 1, map, 0); } } // 2 = 121, 3 = 1213121 int main() { char map[10][10]; cin >> X>>Y; for (int i = 0; i < Y; i++) { for (int j = 0; j < X; j++) { cin >> map[i][j]; if (map[i][j] == 'x') { check[i][j] = 1; } } } recursive(0, map, 0); }
0 jempol