Untitled

Run Settings
LanguageC++
Language Version
Run Command
#include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> #include <queue> using namespace std; int rowSZ = 10; int colSZ = 10; int initVal = 0; vector< vector<int> > grid(colSZ, vector<int>(rowSZ,initVal)); vector< vector<int> > visited(colSZ, vector<int>(rowSZ,initVal)); int Breadth_First_Search(int ind_I, int ind_J){ /* 1 1 0 2 0 1 1 0 0 0 0 1 4 4 0 0 if you give indexes[0,0; 0,1; 0,2; 0,3; 1,0; 1,1;...] of this array, if will return: at first: 7 then: 8 the main function, will return maximum of them */ queue <pair <int, int> > q; int sum_of_weights=0, first=0; if (visited[ind_I][ind_J]==0 && grid[ind_I][ind_J]!=0) {q.push(make_pair(ind_I,ind_J));} while(!q.empty()){ visited[ind_I][ind_J]=1; sum_of_weights+=grid[ind_I][ind_J]; for (int i=ind_I-1;i<=ind_I+1;i++) for (int j=ind_J-1;j<=ind_J+1;j++){ if (i>=0 && j>=0 && i<rowSZ && j<colSZ && visited[i][j]==0 && grid[i][j]!=0){ visited[i][j]=1; //es chavamate, da gasworda, axla amixseni rato q.push(make_pair(i,j)); } } q.pop(); if (!q.empty()){ ind_I=q.front().first; ind_J=q.front().second; } } return sum_of_weights; } int main() { int m,n,i,j,Max=-1, max=-1; cin>>m>>n; for (i=0;i<m;i++) for (j=0;j<n;j++){ cin>>grid[i][j]; } for (i=0;i<m;i++) for (j=0;j<n;j++){ if (grid[i][j]!=0) { max=Breadth_First_Search(i,j); } if (max>Max) Max=max; } cout << Max; return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines