Informatică, întrebare adresată de mateibarbaov4vk2, 9 ani în urmă

Cerința
Se dă o matrice cu n linii și m coloane și elemente 0 sau 1, care reprezintă harta unui lac, în care 0 înseamnă uscat, iar 1 înseamnă apă.

Se dorește plasarea pe fiecare zonă cu uscat a unui crocodil sau a unui elefant astfel încât să nu fie două animale din aceeași specie în zone învecinate. În plus, se dorește ca numărul de crocodil să fie cât mai mare.

Să se determine câți crocodili și câți elefanți se pot plasa pe lac, astfel încât numărul de crocodili să fie cât mai mare.

Date de intrare
Fișierul de intrare croco1.in conține pe prima linie numerele n m. Următoarele n linii conțin câte m elemente, 0 sau 1, cu semnificația din enunț.

Date de ieșire
Fișierul de ieșire croco1.out va conține pe prima linie numerele C E, reprezentând numărul de crocodili, respectiv numărul de elefanți care pot fi plasați în condițiile precizate, astfel încât numărul de crocodili să fie cât mai mare.

Restricții și precizări
1 ≤ n , m ≤ 100

Exemplu
croco1.in

3 5
0 0 0 1 0
0 0 1 0 0
1 0 0 1 0
croco1.out

7 4
Explicație
O posibilitate de plasare a animalelor cu număr maxim de crocodili este următoarea:

C E C A C
E C A C E
A E C A C

Răspunsuri la întrebare

Răspuns de NuPotSaStiuTot
7
Bucla stanga la dreapta, sus pana jos.
Daca este uscat(0) :
  daca sus si a stanga nu este crocodil (2): face crocodil (2)
  sau: daca sus si a stanga nu este elefant (3): face elefant  (3)

gasesti crocodili  cu 2 si elefanți  cu 3 in lacul l[][]

for (int in=0;in<n;in++){
for (int im=0;im<m;im++){
if (l[in][im] == 0)
if  ((in==0 ||l[in-1][im] != 2) && (im==0 || l[in][im-1] != 2) )
l[in][im] = 2;
else if ((in==0 || l[in-1][im] != 3) && (im==0 || l[in][im-1] != 3) )
l[in][im] = 3;
}
}
Alte întrebări interesante