Cześć!
Robię takie zadanko: https://ki.staszic.waw.pl/task.php?name=figury
Moje rozwiązanie to prosty DFS który oblicza obówd, przy 3 ostatnich testach (zgaduje że dla jakiś dużych danych) dostaje komunikat "Przechwycono sygnał 11". Tylko dlaczego? gdzie w tym kodzie wykraczam poza zadeklarowaną pamięć?
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
const int INF = 1e9 + 7, MAXN = 2e3 + 7;
vector<vector<bool>> seen(MAXN, vector<bool>(MAXN));
ll circuit = 0;
void dfs(int i, int j, int n, int m, vector<string>& board){
seen[i][j] = true;
vector<int> x = {1, -1, 0, 0};
vector<int> y = {0, 0, 1, -1};
for (int d = 0; d < 4; d++){
int ii = i + x[d], jj = j + y[d];
if (ii < 0 || ii >= n || jj < 0 || jj >= m || board[ii][jj] == '.')
circuit++;
else if (seen[ii][jj] == false)
dfs(ii, jj, n, m, board);
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n, m;
cin >> n >> m;
vector<string> board(n);
for (auto& row : board)
cin >> row;
int x, y;
cin >> x >> y;
x--; y--;
if (board[x][y] == '.'){
cout << 0 << "\n";
return 0;
}
dfs(x, y, n, m, board);
cout << circuit << "\n";
return 0;
}
Sprawdzałem już dla wygenerowanych przeze mnie testów, i z fssantize ale wszystko działało bez zarzutów.