#2453
Rosii mici
Dan este un mare pasionat al fructelor, printre preferatele sale fiind strugurii şi pepenii. Însă recent şi-a descoperit și pasiunea pentru legume, în special pentru roşii, dar mai ales roşiile mici. Spre norocul lui, grădina bunicului este plină de roşii. Grădina are forma unei matrice cu N
linii și M
coloane cu elemente numere naturale, nu neapărat distincte, unde fiecare element din matrice reprezintă dimensiunea unei roşii. Matricea are proprietatea că oricare coloană are valorile ordonate crescător de sus în jos, adică de la prima spre ultima linie. Bunicul său îi cere să rezolve Q
sarcini. Pentru fiecare sarcină, Dan primeşte un număr natural x
şi trebuie să găsească o submatrice de arie maximă care începe de pe linia 1
a matricei care reprezintă grădina şi are toate elementele mai mici sau egale decât x
. Pentru determinarea submatricei cerute, Dan are voie să mute toate valorile unei coloane în fața oricărei alte coloane. De asemenea, îi este permis să facă oricâte mutări de tipul acesta.
Să se calculeze aria maximă a unei submatrice care respectă specificațiile din enunț, pentru fiecare din cele Q
sarcini date de către bunic.
ONI 2018 clasa a IX-a
Problema | Rosii mici | Operații I/O |
rosii_mici.in /rosii_mici.out
|
---|---|---|---|
Limita timp | 1 secunde | Limita memorie |
Total: 128 MB
/
Stivă 32 MB
|
Id soluție | #42604937 | Utilizator | |
Fișier | rosii_mici.cpp | Dimensiune | 1.03 KB |
Data încărcării | 12 Martie 2023, 12:09 | Scor / rezultat | Eroare de compilare |
In file included from /usr/include/c++/4.8/algorithm:62:0, from rosii_mici.cpp:2: /usr/include/c++/4.8/bits/stl_algo.h: In instantiation of '_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, const _Tp&, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<coloana*, std::vector<coloana> >; _Tp = coloana; _Compare = main()::__lambda0]': /usr/include/c++/4.8/bits/stl_algo.h:2296:78: required from '_RandomAccessIterator std::__unguarded_partition_pivot(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<coloana*, std::vector<coloana> >; _Compare = main()::__lambda0]' /usr/include/c++/4.8/bits/stl_algo.h:2337:62: required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<coloana*, std::vector<coloana> >; _Size = int; _Compare = main()::__lambda0]' /usr/include/c++/4.8/bits/stl_algo.h:5499:44: required from 'void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator<coloana*, std::vector<coloana> >; _Compare = main()::__lambda0]' rosii_mici.cpp:42:10: required from here /usr/include/c++/4.8/bits/stl_algo.h:2263:35: error: no match for call to '(main()::__lambda0) (coloana&, const coloana&)' while (__comp(*__first, __pivot)) ^ rosii_mici.cpp:40:39: note: candidates are: sort(mat.begin(), mat.end(), [](coloana& a, coloana& b){ ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from rosii_mici.cpp:2: /usr/include/c++/4.8/bits/stl_algo.h:2263:35: note: bool (*)(coloana&, coloana&) <conversion> while (__comp(*__first, __pivot)) ^ /usr/include/c++/4.8/bits/stl_algo.h:2263:35: note: candidate expects 3 arguments, 3 provided rosii_mici.cpp:40:63: note: main()::__lambda0 sort(mat.begin(), mat.end(), [](coloana& a, coloana& b){ ^ rosii_mici.cpp:40:63: note: no known conversion for argument 2 from 'const coloana' to 'coloana&' In file included from /usr/include/c++/4.8/algorithm:62:0, from rosii_mici.cpp:2: /usr/include/c++/4.8/bits/stl_algo.h:2266:34: error: no match for call to '(main()::__lambda0) (const coloana&, coloana&)' while (__comp(__pivot, *__last)) ^ rosii_mici.cpp:40:39: note: candidates are: sort(mat.begin(), mat.end(), [](coloana& a, coloana& b){ ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from rosii_mici.cpp:2: /usr/include/c++/4.8/bits/stl_algo.h:2266:34: note: bool (*)(coloana&, coloana&) <conversion> while (__comp(__pivot, *__last)) ^ /usr/include/c++/4.8/bits/stl_algo.h:2266:34: note: candidate expects 3 arguments, 3 provided rosii_mici.cpp:40:63: note: main()::__lambda0 sort(mat.begin(), mat.end(), [](coloana& a, coloana& b){ ^ rosii_mici.cpp:40:63: note: no known conversion for argument 1 from 'const coloana' to 'coloana&'
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Rosii mici 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ă.