Pagini recente »
Istoria paginii utilizator/andreipetre
|
Istoria paginii utilizator/iustinianserban
|
Istoria paginii utilizator/marianviorel
|
Istoria paginii utilizator/banta0503
|
Cod sursă (job #122078)
Cod sursă (job
#122078)
#include <fstream>
using namespace std;
ifstream f("fotografie.in");
ofstream g("fotografie.out");
int a[51][51],n,m,nr;
void citire()
{
f>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
f>>a[i][j];
}
void fill(int i,int j,int nr)
{
a[i][j]=nr;
if(i>1 && a[i-1][j]==0) fill(i-1,j,nr);
if(i<n && a[i+1][j]==0) fill(i+1,j,nr);
if(j>1 && a[i][j-1]==0) fill(i,j-1,nr);
if(j<m && a[i][j+1]==0) fill(i,j+1,nr);
}
void obiecte()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(a[i][j]==0)
{
nr++;
fill(i,j,nr);
}
}
void afis()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
g<<a[i][j]<<' ';
g<<'\n';
}
}
int main()
{
citire();
obiecte();
g<<nr;
return 0;
}