Răspuns:
Explicație:
#include <fstream>
using namespace std;
ifstream in("zona3.in");
ofstream out("zona3.out");
int a[101][101],n,m,s;
void Fill(int i,int j)
{
if(a[i][j]==-1)
{
a[i][j]=1;
s++;
Fill(i-1,j);
Fill(i,j+1);
Fill(i+1,j);
Fill(i,j-1);
}
}
void Fill2(int i,int j)
{
if(a[i][j]==1)
{
a[i][j]=s;
Fill2(i-1,j);
Fill2(i,j+1);
Fill2(i+1,j);
Fill2(i,j-1);
}
}
int main()
{
in>>n>>m;
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
in>>a[i][j];
a[i][j]=-a[i][j];
}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]==-1)
{
s=0;
Fill(i,j);
Fill2(i,j);
}
for(i=1;i<=n;i++)
{ for(j=1;j<=m;j++)
out<<a[i][j]<<" ";
out<<endl;
}
return 0;
}