#1788
Rege1
Regele Leonidas trebuie să-și aleagă o armată de 300 de spartani. Surprins de mulțimea mare de voluntari care vor să-l urmeze în viitoarea luptă de la Termopile, regele are nevoie să facă o selecție a războinicilor. Astfel, el a decis să le dea următoarea problemă:
Se dă un arbore cu N
noduri (etichetate cu numere consecutive începând de la 1
) cu rădăcina în nodul 1
, în care fiecare muchie are asociat un cost. Se definește un lanț în jos în arbore ca fiind orice lanț simplu ce unește un nod A
cu alt nod B
din subarborele lui A
. Cu alte cuvinte, un lanț în jos este un lanț de la A
la B
în care A
este strămoș al lui B
. Definim costul unui lanț în jos ca fiind suma costurilor muchiilor din care este format lanțul.
Numim acoperire a unui arbore o partiționare a muchiilor în lanțuri disjuncte, a căror reuniune este arborele inițial. Regele Leonidas dorește să acopere întreg arborele cu lanțuri în jos, însa are un număr limitat de lanțuri, notat în continuare cu S
.
Se cere să se determine cel mai mic număr K
pentru care să existe o partiționare completă a arborelui cu maxim S
lanțuri astfel încât costul fiecărui lanț să fie cel mult K
. Dacă nu există un astfel de număr K
, să se afișeze -1
.
Pentru că și tu vrei să lupți alături de Leonidas pentru libertatea Spartei, trebuie să rezolvi această problemă ca să-ți asiguri un loc în primii 300 de spartani. Leonidas este un rege înțelept. Ca să se asigure că nu vor exista Spartani care vor încerca să ghicească rezultatul, el vă cere să răspundeți la T
astfel de probleme.
Concursul Interjudeţean de Matematică şi Informatică Grigore Moisil, 2016
Problema | Rege1 | Operații I/O |
rege1.in /rege1.out
|
---|---|---|---|
Limita timp | 1.5 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #54488574 | Utilizator | |
Fișier | rege1.cpp | Dimensiune | 1.78 KB |
Data încărcării | 29 Noiembrie 2024, 21:32 | Scor / rezultat | Eroare de compilare |
rege1.cpp: In function 'void dfs(int)': rege1.cpp:16:15: error: expected unqualified-id before '[' token for(auto &[next, w]:graf[node]) ^ rege1.cpp:16:15: error: expected ';' before '[' token rege1.cpp:16:22: error: 'w' was not declared in this scope for(auto &[next, w]:graf[node]) ^ rege1.cpp: In lambda function: rege1.cpp:16:24: error: expected '{' before ':' token for(auto &[next, w]:graf[node]) ^ rege1.cpp: In function 'void dfs(int)': rege1.cpp:16:15: error: overloaded function with no contextual type information for(auto &[next, w]:graf[node]) ^ rege1.cpp:16:24: error: expected ';' before ':' token for(auto &[next, w]:graf[node]) ^ rege1.cpp:16:24: error: expected primary-expression before ':' token rege1.cpp:16:24: error: expected ')' before ':' token rege1.cpp:16:24: error: expected primary-expression before ':' token rege1.cpp:16:24: error: expected ';' before ':' token rege1.cpp:15:10: warning: unused variable 'frunzan' [-Wunused-variable] bool frunzan = 1; ^ rege1.cpp:86:1: error: expected '}' at end of input } ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Rege1 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ă.