Trochę cięzko mi przedstawić problem w sposób zrozumiały.
#include <cstdio>
#include <vector>
using namespace std;
char tab[1005][1005];
bool odw[1005][1005];
int n; /////////////////////////////////////////////////////////////////////
struct Wierz{
int x,y;
int wys,sze;
int rozmiar;
};
vector < Wierz > wierzcholki; ////////////////////////////////////////////////
void tworz ( int i , int j ){
Wierz wierz;
wierz.y = i;
wierz.x = j;
wierz.wys = 0;
wierz.sze = 0;
while ( true ){
if ( tab[i+wierz.wys][j] == 'B' )
wierz.wys++;
else break;
}
while ( true ){
if ( tab[i][j+wierz.sze] == 'B' )
wierz.wys++;
else break;
}
for ( ; i < i+wierz.wys; i++)
for ( ; j < j+wierz.sze; j++) odw[i][j] = true;
wierz.rozmiar = wierz.sze*wierz.wys;
wierzcholki.push_back ( wierz );
}
void tworz_wierz (){
printf("lol");
for ( int i = 0; i < n; i++)
for ( int j = 0; j < n; j++){
if ( tab[i][j] == 'B' && odw[i][j]==false ) tworz ( i , j );
else
odw[i][j] == true;
}
}
int main (){
scanf("%d", &n);
for ( int i = 0; i < n; i++) scanf("%s", tab[i]);
printf ("%c", tab[4][4]);
tworz_wierz();
printf("%lu\n", wierzcholki.size());
}
Gdy chcę wczytać dane typu
5
BBBAB
BBBAB
AAAAA
BBABA
BBAAB
To program wczyta dane, a następnie się zapętla ( o dziwo program nie wchodzi do funkcji tworz_wierz bo nie wypisuje nic a powinien wypisać "lol" ). Lecz gdy wczytam dane typu
5
AAAAA
AAAAA
AAAAA
AAAAA
AAAAA
To program normalnie się wykona. Czyli gdy wczytam w jakimś ciągu literę B to program się zapętla. Mógłby mi ktoś wyjaśnić ten paradox ?