Răspuns:
#include<fstream>
using namespace std;
ifstream cin("parcela.in");
ofstream cout("parcela.out");
int a[1001][1001],n,m,nr,amax,pmax;
inline void parcela(int i,int j,int &arr)
{
if(a[i][j])
{
arr++;
a[i][j]=0;
parcela(i-1,j,arr);
parcela(i,j+1,arr);
parcela(i+1,j,arr);
parcela(i,j-1,arr);
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(a[i][j])
{
int arr=0;
nr++;
parcela(i,j,arr);
if(arr>amax)
{
amax=arr;
pmax=nr;
}
}
}
cout<<nr<<" "<<amax<<" "<<pmax;
}
Explicație: