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
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;
}
}
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
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă