#2227
gradina1
Într-un oraş se află o grădină de formă dreptunghiulară, formată din n x m
pătrăţele, aranjate sub forma unei matrice cu n
linii şi m
coloane. Într-un pătrăţel poate fi cultivată o singură plantă, de o anumită specie. Speciile sunt identificate prin numere distincte cuprinse între 1
şi s
. Datorită fenomenelor meteorologice, în unele pătrăţele nu mai există flori.
Solul fiecărui pătrăţel are un anumit coeficient de umiditate. Pentru cultivare, fiecare specie de flori are nevoie de o valoare minimă a umidităţii solului. Mai exact, dacă umiditatea solului dintr-un pătrăţel este mai mică decât umiditatea specifică plantei, aceasta nu poate fi cultivată în pătrăţelul respectiv. Proprietarul grădinii doreşte să o reamenajeze, prin păstrarea plantelor deja existente, dar şi prin cultivarea de noi plante în pătrăţelele din care florile au dispărut, astfel încât să se obţină o zonă de arie cât mai mare acoperită cu plante din aceeaşi specie.
Se numeşte zonă un grup de pătrăţele, astfel încât oricare două pătrăţele din zonă fie sunt învecinate (adică au o latură comună), fie se poate ajunge de la unul la celălalt, deplasându-ne numai de la un pătrăţel la unul învecinat cu el. Aria unei zone este egală cu numărul de pătrăţele din care este formată zona.
Determinaţi valoarea ariei pentru zona de arie maximă cultivată cu plante din aceeaşi specie, obţinută în urma reamenajării grădinii.
Olimpiada Municipala de Informatica, Iasi, 2007
Problema | gradina1 | Operații I/O |
gradina1.in /gradina1.out
|
---|---|---|---|
Limita timp | 1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #52590960 | Utilizator | |
Fișier | gradina1.cpp | Dimensiune | 1.50 KB |
Data încărcării | 03 Octombrie 2024, 21:57 | Scor / rezultat | Eroare de compilare |
gradina1.cpp:8:52: error: 'int clone [59][59]' redeclared as different kind of symbol int a[59][59], umid[59][59], sol[109], clone[59][59], nr; ^ In file included from /usr/include/sched.h:41:0, from /usr/include/pthread.h:23, from /usr/include/i386-linux-gnu/c++/4.8/bits/gthr-default.h:35, from /usr/include/i386-linux-gnu/c++/4.8/bits/gthr.h:148, from /usr/include/c++/4.8/ext/atomicity.h:35, from /usr/include/c++/4.8/bits/ios_base.h:39, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from gradina1.cpp:1: /usr/include/i386-linux-gnu/bits/sched.h:81:12: error: previous declaration of 'int clone(int (*)(void*), void*, int, void*, ...)' extern int clone (int (*__fn) (void *__arg), void *__child_stack, ^ gradina1.cpp: In function 'void fill(int, int, int, int)': gradina1.cpp:11:16: warning: pointer to a function used in arithmetic [-Wpointer-arith] clone[linie][coloana]=-1; ^ gradina1.cpp:11:25: warning: pointer to a function used in arithmetic [-Wpointer-arith] clone[linie][coloana]=-1; ^ gradina1.cpp:11:26: error: assignment of read-only location '*(clone + (((sizetype)linie) + ((sizetype)coloana)))' clone[linie][coloana]=-1; ^ gradina1.cpp:11:26: error: cannot convert 'int' to 'int(int (*)(void*), void*, int, void*, ...)throw ()' in assignment gradina1.cpp:16:21: warning: pointer to a function used in arithmetic [-Wpointer-arith] if (clone[nx][ny]==specie || (clone[nx][ny]==0 && umid[nx][ny]>=limit)) ^ gradina1.cpp:16:25: warning: pointer to a function used in arithmetic [-Wpointer-arith] if (clone[nx][ny]==specie || (clone[nx][ny]==0 && umid[nx][ny]>=limit)) ^ gradina1.cpp:16:28: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] if (clone[nx][ny]==specie || (clone[nx][ny]==0 && umid[nx][ny]>=limit)) ^ gradina1.cpp:16:47: warning: pointer to a function used in arithmetic [-Wpointer-arith] if (clone[nx][ny]==specie || (clone[nx][ny]==0 && umid[nx][ny]>=limit)) ^ gradina1.cpp:16:51: warning: pointer to a function used in arithmetic [-Wpointer-arith] if (clone[nx][ny]==specie || (clone[nx][ny]==0 && umid[nx][ny]>=limit)) ^ gradina1.cpp: In function 'int main()': gradina1.cpp:43:21: warning: pointer to a function used in arithmetic [-Wpointer-arith] clone[j][k]=a[j][k]; ^ gradina1.cpp:43:24: warning: pointer to a function used in arithmetic [-Wpointer-arith] clone[j][k]=a[j][k]; ^ gradina1.cpp:43:25: error: assignment of read-only location '*(clone + (((sizetype)j) + ((sizetype)k)))' clone[j][k]=a[j][k]; ^ gradina1.cpp:43:25: error: cannot convert 'int' to 'int(int (*)(void*), void*, int, void*, ...)throw ()' in assignment gradina1.cpp:48:28: warning: pointer to a function used in arithmetic [-Wpointer-arith] if (clone[j][k]==0) ^ gradina1.cpp:48:31: warning: pointer to a function used in arithmetic [-Wpointer-arith] if (clone[j][k]==0) ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema gradina1 face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.