Pagini recente » Cod sursa (job #724837) | Cod sursa (job #3003359) | Cod sursa (job #582395) | Cod sursa (job #2865933) | Cod sursa (job #2358053)
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
int n,m, di[4]={-1,0,1,0}, dj[4]={0,1,0,-1}, aux_maxim=0, maxim=0, contor=0;
int matr[405][405][2];
void bordare()
{
for(int i=0; i<=n+1; i++)
{
matr[i][0][0]=-1;
matr[i][m+1][0]=-1;
}
for(int i=0; i<=m+1; i++)
{
matr[0][i][0]=-1;
matr[n+1][i][0]=-1;
}
}
void alg_fill(int x, int y)
{
int i_v,j_v;
matr[i_v][j_v][0]=contor;
aux_maxim++;
for(int i=0; i<4; i++)
{
i_v=x+di[i];
j_v=y+dj[i];
if(matr[i_v][j_v][0]==0 && matr[i_v][j_v][1]==matr[x][y][1])
{
alg_fill(i_v,j_v);
}
}
}
int main()
{
ifstream f("ferma3.in");
ofstream g("ferma3.out");
int caz;
f>>caz;
f>>n>>m;
bordare();
for(int i=1; i<=n; i++)
{
for(int j=1; j<=m; j++)
{
char aux;
f>>aux;
matr[i][j][1]=(int)aux;
}
}
if(caz==1)
{
for(int i=1; i<=n; i++)
{
for(int j=1; j<=m; j++)
{
if(matr[i][j][0]==0)
{
aux_maxim=0;
alg_fill(i,j);
if(aux_maxim>maxim)
maxim=aux_maxim;
contor++;
}
}
}
g<<maxim-1<<endl;
}
return 0;
}