• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Nie potrafię znaleźć powodu SIGNAL 11 w programie rozwiązującym zadanie

Object Storage Arubacloud
0 głosów
386 wizyt
pytanie zadane 4 czerwca 2021 w C i C++ przez wojtek_suchy Mądrala (6,880 p.)
zamknięte 4 czerwca 2021 przez wojtek_suchy

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.

komentarz zamknięcia: Zbyt duże zagnieżdzenie DFS

Podobne pytania

0 głosów
1 odpowiedź 306 wizyt
pytanie zadane 28 sierpnia 2023 w C i C++ przez Dudziu Nowicjusz (120 p.)
0 głosów
3 odpowiedzi 318 wizyt
pytanie zadane 27 lutego 2023 w C i C++ przez diedassel Użytkownik (570 p.)
0 głosów
1 odpowiedź 149 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...