#include<iostream> using namespace std; int min(int a,int b,int c) { int min = a; if(min > b) min = b; if(min > c) min = c; return min; } int main() { const int size = 5; char a[size][size] = { {'b','b','b','b','w'},{'b','b','b','b','b'},{'b','b','b','b','b'},{'b','b','w','b','b'},{'b','w','w','b','b'} }; int arr[size+1][size+1]; // First row and First column of arr is zero. for(int i=0;i<size+1;i++) { arr[0][i] = 0; arr[i][0] = 0; } int answer = 0; for(int i=0;i<size;i++) { for(int j=0;j<size;j++) { if(a[i][j] == 'w') arr[i+1][j+1] = 0; if(a[i][j] == 'b') { int minimum = min(arr[i][i],arr[i+1][j],arr[i][j+1]); arr[i+1][j+1] = minimum + 1; if( arr[i+1][j+1] > answer) answer = arr[i+1][j+1]; } } } for(int i=0;i<size+1;i++) { for(int j=0;j<size+1;j++) { cout<<arr[i][j]<<"\t"; } cout<<endl; } cout<<answer<<endl; return 0; }