#1057
MaxP
Considerăm un şir de numere a
1
, a
2
, …, a
N
. O secvenţă nevidă în acest şir este de forma a
i
, a
i+1
, …, a
j
, unde i ≤ j
. De exemplu, pentru N=4
şi şirul 2 3 4 3
, secvenţele nevide sunt: 2
, 2 3
, 2 3 4
, 2 3 4 3
, 3
, 3 4
, 3 4 3
, 4
, 4 3
, 3
. Definim puterea unui element a
i
ca fiind numărul de secvenţe care-l conţin pe a
i
şi în care a
i
este strict mai mare decât celelalte elemente ale fiecăreia dintre respectivele secvenţe. Astfel în şirul 2 3 4 3
puterea elementului a
1
este 1
(fiind maxim doar în secvenţa formată din el însuşi), a elementului a
2
este 2
(a
2
fiind maxim în secvenţele 2 3
şi 3
), a elementului a
3
este 6
(fiind maxim în secvenţele 2 3 4
, 2 3 4 3
, 3 4
, 3 4 3
, 4
şi 4 3
), iar a elementului a
este 1
.
Scrieţi un program care determină puterea cea mai mare a unui element din şirul dat, precum şi numărul de elemente din şir care au cea mai mare putere.
OJI 2013, Clasa a VIII-a
Problema | MaxP | Operații I/O |
maxp.in /maxp.out
|
---|---|---|---|
Limita timp | 0.5 secunde | Limita memorie |
Total: 32 MB
/
Stivă 32 MB
|
Id soluție | #49657663 | Utilizator | |
Fișier | maxp.cpp | Dimensiune | 1.20 KB |
Data încărcării | 11 Martie 2024, 13:45 | Scor / rezultat | Eroare de compilare |
maxp.cpp: In function 'int main()': maxp.cpp:41:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int j = 0; j < s.size(); j++) { ^ In file included from /usr/include/i386-linux-gnu/c++/4.8/bits/c++allocator.h:33:0, from /usr/include/c++/4.8/bits/allocator.h:46, from /usr/include/c++/4.8/string:41, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/sstream:38, from /usr/include/c++/4.8/complex:45, from /usr/include/c++/4.8/ccomplex:38, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:52, from maxp.cpp:1: /usr/include/c++/4.8/ext/new_allocator.h: In instantiation of 'void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = nc; _Args = {int&, int&, int}; _Tp = nc]': /usr/include/c++/4.8/bits/alloc_traits.h:254:4: required from 'static typename std::enable_if<std::allocator_traits<_Alloc>::__construct_helper<_Tp, _Args>::value, void>::type std::allocator_traits<_Alloc>::_S_construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = nc; _Args = {int&, int&, int}; _Alloc = std::allocator<nc>; typename std::enable_if<std::allocator_traits<_Alloc>::__construct_helper<_Tp, _Args>::value, void>::type = void]' /usr/include/c++/4.8/bits/alloc_traits.h:393:57: required from 'static decltype (_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits::construct::__args)...)) std::allocator_traits<_Alloc>::construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = nc; _Args = {int&, int&, int}; _Alloc = std::allocator<nc>; decltype (_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits::construct::__args)...)) = <type error>]' /usr/include/c++/4.8/bits/vector.tcc:97:40: required from 'void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {int&, int&, int}; _Tp = nc; _Alloc = std::allocator<nc>]' maxp.cpp:40:41: required from here /usr/include/c++/4.8/ext/new_allocator.h:120:4: error: new initializer expression list treated as compound expression [-fpermissive] { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } ^ /usr/include/c++/4.8/ext/new_allocator.h:120:4: error: no matching function for call to 'nc::nc(int)' /usr/include/c++/4.8/ext/new_allocator.h:120:4: note: candidates are: maxp.cpp:12:8: note: nc::nc() struct nc { ^ maxp.cpp:12:8: note: candidate expects 0 arguments, 1 provided maxp.cpp:12:8: note: constexpr nc::nc(const nc&) maxp.cpp:12:8: note: no known conversion for argument 1 from 'int' to 'const nc&' maxp.cpp:12:8: note: constexpr nc::nc(nc&&) maxp.cpp:12:8: note: no known conversion for argument 1 from 'int' to 'nc&&'
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema MaxP 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ă.