#4229
kdist
Bujorel s-a apucat de pomicultură şi a însămânţat un arbore (graf conex aciclic) cu N
noduri, fiecare nod având o culoare dată dintr-un interval [1, K]
. Acum, după ce arborele a crescut, el doreşte să ştie, pentru fiecare culoare, suma distanţelor dintre toate perechile de noduri ale arborelui ce au culoarea respectivă. Distanţa dintre două noduri se defineşte ca fiind numărul de muchii de pe drumul dintre cele două noduri. Deoarece Bujorel a folosit foarte mult îngrăşământ la plantarea arborelui, acesta a crescut foarte mult şi voi trebuie să scrieţi un program care calculează suma distanţelor dintre nodurile cu aceeaşi culoare.
Lot Resita 2012
Problema | kdist | Operații I/O | tastatură/ecran |
---|---|---|---|
Limita timp | 1 secunde | Limita memorie |
Total: 128 MB
/
Stivă 64 MB
|
Id soluție | #40288587 | Utilizator | |
Fișier | kdist.cpp | Dimensiune | 4.65 KB |
Data încărcării | 05 Decembrie 2022, 00:24 | Scor / rezultat | 30 puncte |
kdist.cpp: In function 'int f1(int)': kdist.cpp:67:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j1=0;j1<v1[x].size();j1++) ^ kdist.cpp: In function 'int main()': kdist.cpp:250:36: warning: format '%ld' expects argument of type 'long int', but argument 2 has type 'long long int' [-Wformat=] printf("%ld\n", (sol[i]>>1)); ^ kdist.cpp:102:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&n); ^ kdist.cpp:103:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&m); ^ kdist.cpp:107:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&x); ^ kdist.cpp:108:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&y); ^ kdist.cpp:116:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&k); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0.004 secunde | OK. | 10 | 10 | ||
2 | 0.004 secunde | OK. | 10 | 10 | ||
3 | 0.012 secunde | OK. | 10 | 10 | ||
4 | 0.012 secunde | Raspuns gresit. | 10 | 0 | ||
5 | 0.076 secunde | Raspuns gresit. | 10 | 0 | ||
6 | 0.104 secunde | Raspuns gresit. | 10 | 0 | ||
7 | 0.24 secunde | Raspuns gresit. | 10 | 0 | ||
8 | 0.264 secunde | Raspuns gresit. | 10 | 0 | ||
9 | 0.336 secunde | Raspuns gresit. | 10 | 0 | ||
10 | 0.34 secunde | Raspuns gresit. | 10 | 0 | ||
Punctaj total | 30 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema kdist 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ă.