#1200
Spiridusi
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 | #42658134 | Utilizator | |
Fișier | spiridusi.cpp | Dimensiune | 1.74 KB |
Data încărcării | 13 Martie 2023, 21:30 | Scor / rezultat | 100 puncte |
spiridusi.cpp: In function 'void df(int)': spiridusi.cpp:63:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0; i<v[nod].size(); ++i) ^ spiridusi.cpp: In function 'int main()': spiridusi.cpp:78:40: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("spiridusi.in", "r", stdin); ^ spiridusi.cpp:79:42: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("spiridusi.out", "w", stdout); ^ spiridusi.cpp:81:26: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d", &n, &b); ^ spiridusi.cpp:83:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &s[i]); ^ spiridusi.cpp:85:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &p[i]); ^ spiridusi.cpp:91:30: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d", &a, &b); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0.076 secunde | OK. | 10 | 10 | ||
1 | 0 secunde | OK. | 10 | 10 | ||
2 | 0.08 secunde | OK. | 10 | 10 | ||
3 | 0 secunde | OK. | 10 | 10 | ||
4 | 0 secunde | OK. | 10 | 10 | ||
5 | 0.036 secunde | OK. | 10 | 10 | ||
6 | 0.056 secunde | OK. | 10 | 10 | ||
7 | 0.072 secunde | OK. | 10 | 10 | ||
8 | 0.072 secunde | OK. | 10 | 10 | ||
9 | 0.076 secunde | OK. | 10 | 10 | ||
Punctaj total | 100 |
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ă.