Răspuns :
#include <iostream>
using namespace std;
int a[102][102];
int fill(int i, int j) {
int c = 0;
if(a[i][j] == 3)
c++;
a[i][j] = 0;
if(a[i-1][j]!=0) c += fill(i-1,j);
if(a[i][j+1]!=0) c += fill(i,j+1);
if(a[i+1][j]!=0) c += fill(i+1,j);
if(a[i][j-1]!=0) c += fill(i,j-1);
return c;
}
int main()
{
int n, m;
cin >> n >> m;
for(int i=0; i <= n + 1; i++)
a[i][0] = a[i][m + 1] = 0;
for(int j = 0; j <=m + 1; j++)
a[0][j] = a[n + 1][j] = 0;
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] == 2)
cout << fill(i, j);
return 0;
}
using namespace std;
int a[102][102];
int fill(int i, int j) {
int c = 0;
if(a[i][j] == 3)
c++;
a[i][j] = 0;
if(a[i-1][j]!=0) c += fill(i-1,j);
if(a[i][j+1]!=0) c += fill(i,j+1);
if(a[i+1][j]!=0) c += fill(i+1,j);
if(a[i][j-1]!=0) c += fill(i,j-1);
return c;
}
int main()
{
int n, m;
cin >> n >> m;
for(int i=0; i <= n + 1; i++)
a[i][0] = a[i][m + 1] = 0;
for(int j = 0; j <=m + 1; j++)
a[0][j] = a[n + 1][j] = 0;
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] == 2)
cout << fill(i, j);
return 0;
}
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Ne bucurăm dacă informațiile oferite v-au fost de ajutor. Pentru orice întrebare sau clarificare suplimentară, echipa noastră vă stă la dispoziție. Revenirea dumneavoastră ne onorează – nu uitați să ne salvați în lista de favorite!