#5003
Înainte de prima cursă din sezon, Marele Premiu al orașului Necleab, Carol și Luis pot să facă mașina mai rapidă folosindu-se de un șir de n numere întregi, indexat de la 0 la n − 1, și patru numere: k, p, q și r. Carol selectează o mulțime care conține indicii unei subsecvențe de lungime q · k din șirul de n numere. Indicele de start al acestei subsecvențe, notat cu i, trebuie să îndeplinească condiția 𝑖 % 𝑘 = 𝑟. Luis selectează inițial o mulțime care conține indicii unei subsecvențe de lungime 𝑝 din șirul de n numere. Ulterior, el adaugă indici astfel încât, la final, un indice i aparține mulțimii dacă și numai dacă indicele 𝑖 + 𝑘 aparține aceleiași mulțimi, ori de câte ori ambii indici sunt cuprinși între 0 și n − 1. Pentru ca în sfârșit anul ăsta să fie anul lor, piloții vor să facă mașina cât mai rapidă. Urmând regulile descrise mai sus, care este viteza maximă cu care piloții pot îmbunătăți mașina?
ONI 2026, clasa a 9-a
| Problema | Scuderia | Operații I/O |
scuderia.in/scuderia.out
|
|---|---|---|---|
| Limita timp | 0.2 secunde | Limita memorie |
Total: 5 MB
/
Stivă 4 MB
|
| Id soluție | #64600641 | Utilizator | |
| Fișier | scuderia.cpp | Dimensiune | 771 B |
| Data încărcării | 18 Mai 2026, 08:58 | Scor/rezultat | Eroare de compilare |
scuderia.cpp: In function ‘int main()’: scuderia.cpp:31:39: error: no matching function for call to ‘max(ll&, int&)’ 31 | if(((i-(q*k)+1)%k)!=r) ans=max(ans, sum); | ~~~^~~~~~~~~~ In file included from /usr/include/c++/13/algorithm:60, from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51, from scuderia.cpp:1: /usr/include/c++/13/bits/stl_algobase.h:257:5: note: candidate: ‘template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&)’ 257 | max(const _Tp& __a, const _Tp& __b) | ^~~ /usr/include/c++/13/bits/stl_algobase.h:257:5: note: template argument deduction/substitution failed: scuderia.cpp:31:39: note: deduced conflicting types for parameter ‘const _Tp’ (‘long long int’ and ‘int’) 31 | if(((i-(q*k)+1)%k)!=r) ans=max(ans, sum); | ~~~^~~~~~~~~~ /usr/include/c++/13/bits/stl_algobase.h:303:5: note: candidate: ‘template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare)’ 303 | max(const _Tp& __a, const _Tp& __b, _Compare __comp) | ^~~ /usr/include/c++/13/bits/stl_algobase.h:303:5: note: template argument deduction/substitution failed: scuderia.cpp:31:39: note: deduced conflicting types for parameter ‘const _Tp’ (‘long long int’ and ‘int’) 31 | if(((i-(q*k)+1)%k)!=r) ans=max(ans, sum); | ~~~^~~~~~~~~~ In file included from /usr/include/c++/13/algorithm:61: /usr/include/c++/13/bits/stl_algo.h:5795:5: note: candidate: ‘template<class _Tp> _Tp std::max(initializer_list<_Tp>)’ 5795 | max(initializer_list<_Tp> __l) | ^~~ /usr/include/c++/13/bits/stl_algo.h:5795:5: note: template argument deduction/substitution failed: scuderia.cpp:31:39: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘long long int’ 31 | if(((i-(q*k)+1)%k)!=r) ans=max(ans, sum); | ~~~^~~~~~~~~~ /usr/include/c++/13/bits/stl_algo.h:5805:5: note: candidate: ‘template<class _Tp, class _Compare> _Tp std::max(initializer_list<_Tp>, _Compare)’ 5805 | max(initializer_list<_Tp> __l, _Compare __comp) | ^~~ /usr/include/c++/13/bits/stl_algo.h:5805:5: note: template argument deduction/substitution failed: scuderia.cpp:31:39: note: mismatched types ‘std::initializer_list<_Tp>’ and ‘long long int’ 31 | if(((i-(q*k)+1)%k)!=r) ans=max(ans, sum); | ~~~^~~~~~~~~~ scuderia.cpp:16:12: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 16 | freopen("scuderia.in", "r", stdin); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ scuderia.cpp:17:12: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 17 | freopen("scuderia.out", "w", stdout); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Scuderia 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ă.