#1200
Mei și Satsuki s-au întors de curând în casa de vacanță a familiei lor. Această casă este formată din N camere, unite între ele prin N-1 culoare, astfel încât să se poată ajunge din orice cameră în orice altă cameră. Intrarea în casă se face prin camera 1. Deoarece casa n-a fost locuită timp de mai multe luni, în fiecare cameră i s-au stabilit s[i] spiriduși de praf.
Cele două fete doresc să-și amenajeze un spațiu de joacă întins pe mai multe camere. Ele vor să stabilească două camere a și b (nu neapărat distincte), astfel încât drumul cel mai scurt de la intrarea în casă până în camera b trece prin camera a. Fetele vor merge apoi din camera a în camera b pe drumul cel mai scurt (fără a trece de două ori prin aceeași cameră), gonind spiridușii de praf aflați în fiecare cameră prin care trec, inclusiv pe cei din camerele a și b. După ce fetele ajung în camera b, ele consideră că toate camerele din care au gonit spiridușii de praf au fost alese pentru spațiul de joacă.
Fetele au stabilit pentru fiecare cameră i un coeficient p[i] care reprezintă cât de plăcută ar fi camera i pentru spațiul lor de joacă. În plus, ele au convenit că nu vor goni în total mai mult de C spiriduși ai prafului din camerele prin care trec.
Cunoscând valorile lui N și C, numărul de spiriduși ai prafului s[i], coeficienții p[i] pentru fiecare cameră i, cât și modul în care sunt unite camerele prin culoare, să se determine suma maximă a coeficienților p ai camerelor alese pentru un spațiu de joacă ce respectă condițiile impuse de Mei și Satsuki.
| Problema | Spiridusi | Operații I/O |
spiridusi.in/spiridusi.out
|
|---|---|---|---|
| Limita timp | 0.4 secunde | Limita memorie |
Total: 64 MB
/
Stivă 16 MB
|
| Id soluție | #56986070 | Utilizator | |
| Fișier | spiridusi.cpp | Dimensiune | 2.46 KB |
| Data încărcării | 12 Martie 2025, 12:59 | Scor/rezultat | Eroare de compilare |
spiridusi.cpp: In function 'void Build_Tree(int, int, int)': spiridusi.cpp:49:19: warning: overflow in implicit constant conversion [-Woverflow] wmt[node] = 1e18; ^ spiridusi.cpp: In function 'int Query(int, int, int, int, int)': spiridusi.cpp:91:16: warning: overflow in implicit constant conversion [-Woverflow] return 1e18; ^ spiridusi.cpp: In function 'void dfs(int, int)': spiridusi.cpp:129:63: error: no matching function for call to 'max(long long int, int&)' ret = max(ret, sp[len] - Query(1, 1, n, max(1LL, limit), len - 1)); ^ spiridusi.cpp:129:63: note: candidates are: 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/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 spiridusi.cpp:1: /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) ^ /usr/include/c++/4.8/bits/stl_algobase.h:216:5: note: template argument deduction/substitution failed: spiridusi.cpp:129:63: note: deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int') ret = max(ret, sp[len] - Query(1, 1, n, max(1LL, limit), len - 1)); ^ 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/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 spiridusi.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:260:5: note: template argument deduction/substitution failed: spiridusi.cpp:129:63: note: deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int') ret = max(ret, sp[len] - Query(1, 1, n, max(1LL, limit), len - 1)); ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from spiridusi.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:4231:5: note: template<class _Tp> _Tp std::max(std::initializer_list<_Tp>) max(initializer_list<_Tp> __l) ^ /usr/include/c++/4.8/bits/stl_algo.h:4231:5: note: template argument deduction/substitution failed: spiridusi.cpp:129:63: note: mismatched types 'std::initializer_list<_Tp>' and 'long long int' ret = max(ret, sp[len] - Query(1, 1, n, max(1LL, limit), len - 1)); ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from spiridusi.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:4236:5: note: template<class _Tp, class _Compare> _Tp std::max(std::initializer_list<_Tp>, _Compare) max(initializer_list<_Tp> __l, _Compare __comp) ^ /usr/include/c++/4.8/bits/stl_algo.h:4236:5: note: template argument deduction/substitution failed: spiridusi.cpp:129:63: note: mismatched types 'std::initializer_list<_Tp>' and 'long long int' ret = max(ret, sp[len] - Query(1, 1, n, max(1LL, limit), len - 1)); ^ spiridusi.cpp: In function 'int32_t main()': spiridusi.cpp:166:9: warning: overflow in implicit constant conversion [-Woverflow] ret = -1e18; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Spiridusi 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ă.