#1028
Ferma
Un fermier deține o fermă de formă dreptunghiulară cu lungimea m
metri și lățimea n
metri. Respectând principiul rotației culturilor, fermierul și a realizat un plan pentru semănarea culturilor în noul an. Astfel ,el a desenat un dreptunghi pe care l-a împărțit în m * n
celule, fiecare corespunzând unui metru pătrat, și a colorat în culori diferite zonele care corespund unor culturi diferite. O cultură poate fi semănată pe mai multe parcele. Două celule care au o latură comună aparțin aceleiași parcele dacă au aceeași culoare (sunt însămânțate cu aceeași cultură). Fermierul are posibilitatea să irige o sigură parcelă și dorește să aleagă parcela cu cea mai mare suprafață. Nefiind mulțumit de suprafața rezultată, s-a întrebat dacă ar putea schimba cultura de pe o singură celulă, astfel încât să obțină o parcelă de suprafață mai mare.
Dându-se dimensiunile fermei și pentru fiecare celulă culoarea corespunzătoare culturii semănate, determinați:
OJI 2014, Clasa a X-a
Problema | Ferma | Operații I/O |
![]() ferma.in /ferma.out
|
---|---|---|---|
Limita timp | 0.2 secunde | Limita memorie |
Total: 32 MB
/
Stivă 10 MB
|
Id soluție | #58588933 | Utilizator | |
Fișier | ferma.cpp | Dimensiune | 2.41 KB |
Data încărcării | 25 Iunie 2025, 17:05 | Scor / rezultat | Eroare de compilare |
ferma.cpp:4:23: error: no matching function for call to 'std::basic_istream<char>::basic_istream(const char [9])' istream fin("ferma.in"); ^ ferma.cpp:4:23: note: candidates are: In file included from /usr/include/c++/4.8/fstream:38:0, from ferma.cpp:1: /usr/include/c++/4.8/istream:606:7: note: std::basic_istream<_CharT, _Traits>::basic_istream() [with _CharT = char; _Traits = std::char_traits<char>] basic_istream() ^ /usr/include/c++/4.8/istream:606:7: note: candidate expects 0 arguments, 1 provided /usr/include/c++/4.8/istream:93:7: note: std::basic_istream<_CharT, _Traits>::basic_istream(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>] basic_istream(__streambuf_type* __sb) ^ /usr/include/c++/4.8/istream:93:7: note: no known conversion for argument 1 from 'const char [9]' to 'std::basic_istream<char>::__streambuf_type* {aka std::basic_streambuf<char>*}' ferma.cpp: In function 'bool inside(int, int)': ferma.cpp:12:15: error: 'n' was not declared in this scope if(x<1||x>n||y<1||y>m) return false; ^ ferma.cpp:12:25: error: 'm' was not declared in this scope if(x<1||x>n||y<1||y>m) return false; ^ ferma.cpp:14:8: error: 'a' was not declared in this scope if(a[x][y]!=0) return false; ^ ferma.cpp: In function 'void alg_fill(int, int)': ferma.cpp:22:5: error: 'd' was not declared in this scope d[nrz]++; ^ ferma.cpp:22:7: error: 'nrz' was not declared in this scope d[nrz]++; ^ ferma.cpp:23:5: error: 'af' was not declared in this scope af[x][y]=nrz; ^ ferma.cpp:28:12: error: 'a' was not declared in this scope if(a[inou][jnou] == a[x][y] && inside(inou, jnou)) alg_fill(inou, jnou); ^ ferma.cpp: In function 'int main()': ferma.cpp:40:5: error: reference to 'max' is ambiguous max=-1; ^ ferma.cpp:32:59: note: candidates are: int max int i, m, n, v, af[401][401], d[170000], viz[401], nrz=0, max, s=0, linie, coloana; ^ In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from ferma.cpp:1: /usr/include/c++/4.8/bits/stl_algobase.h:260:5: note: template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare) max(const _Tp& __a, const _Tp& __b, _Compare __comp) ^ /usr/include/c++/4.8/bits/stl_algobase.h:216:5: note: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&) max(const _Tp& __a, const _Tp& __b) ^ ferma.cpp:46:13: error: 'j' was not declared in this scope for(j = 1; j <= m; j++){ ^ ferma.cpp:51:27: error: reference to 'max' is ambiguous if(d[nrz]>max) max=d[nrz]; ^ ferma.cpp:32:59: note: candidates are: int max int i, m, n, v, af[401][401], d[170000], viz[401], nrz=0, max, s=0, linie, coloana; ^ In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from ferma.cpp:1: /usr/include/c++/4.8/bits/stl_algobase.h:260:5: note: template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare) max(const _Tp& __a, const _Tp& __b, _Compare __comp) ^ /usr/include/c++/4.8/bits/stl_algobase.h:216:5: note: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&) max(const _Tp& __a, const _Tp& __b) ^ ferma.cpp:51:32: error: reference to 'max' is ambiguous if(d[nrz]>max) max=d[nrz]; ^ ferma.cpp:32:59: note: candidates are: int max int i, m, n, v, af[401][401], d[170000], viz[401], nrz=0, max, s=0, linie, coloana; ^ In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from ferma.cpp:1: /usr/include/c++/4.8/bits/stl_algobase.h:260:5: note: template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare) max(const _Tp& __a, const _Tp& __b, _Compare __comp) ^ /usr/include/c++/4.8/bits/stl_algobase.h:216:5: note: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&) max(const _Tp& __a, const _Tp& __b) ^ ferma.cpp:58:15: error: reference to 'max' is ambiguous fout<<max; ^ ferma.cpp:32:59: note: candidates are: int max int i, m, n, v, af[401][401], d[170000], viz[401], nrz=0, max, s=0, linie, coloana; ^ In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from ferma.cpp:1: /usr/include/c++/4.8/bits/stl_algobase.h:260:5: note: template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare) max(const _Tp& __a, const _Tp& __b, _Compare __comp) ^ /usr/include/c++/4.8/bits/stl_algobase.h:216:5: note: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&) max(const _Tp& __a, const _Tp& __b) ^ ferma.cpp:66:16: error: 'j' was not declared in this scope for(j = 1; j <= m; j++){ ^ ferma.cpp:82:57: error: 'cnou' was not declared in this scope if(inside(inou, jnou) && a[inou][jnou] == cnou && !viz[af[inou][jnou]]) { ^ ferma.cpp:89:16: error: reference to 'max' is ambiguous if(s > max){ ^ ferma.cpp:32:59: note: candidates are: int max int i, m, n, v, af[401][401], d[170000], viz[401], nrz=0, max, s=0, linie, coloana; ^ In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from ferma.cpp:1: /usr/include/c++/4.8/bits/stl_algobase.h:260:5: note: template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare) max(const _Tp& __a, const _Tp& __b, _Compare __comp) ^ /usr/include/c++/4.8/bits/stl_algobase.h:216:5: note: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&) max(const _Tp& __a, const _Tp& __b) ^ ferma.cpp:91:12: error: reference to 'max' is ambiguous max = s; ^ ferma.cpp:32:59: note: candidates are: int max int i, m, n, v, af[401][401], d[170000], viz[401], nrz=0, max, s=0, linie, coloana; ^ In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from ferma.cpp:1: /usr/include/c++/4.8/bits/stl_algobase.h:260:5: note: template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare) max(const _Tp& __a, const _Tp& __b, _Compare __comp) ^ /usr/include/c++/4.8/bits/stl_algobase.h:216:5: note: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&) max(const _Tp& __a, const _Tp& __b) ^ ferma.cpp:94:16: error: 'cnou' was not declared in this scope c = cnou; ^ ferma.cpp:98:12: error: 'k' was not declared in this scope for(k = 0; k < 4; k++){ ^ ferma.cpp:68:18: warning: unused variable 'aux' [-Wunused-variable] char aux = a[i][j]; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Ferma 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ă.