#3261
infestation
Reședința Larei a fost invadată de șobolani. Putem descrie reședința Lorei ca un arbore cu N
noduri având rădăcina în nodul 1
. Inițial niciun nod nu este infestat. Diverse evenimente se pot întâmpla pe rând, fiecare eveniment fiind de următoarele patru tipuri:
1 X
– nodul X
devine infestat2 X
– Lora vrea să elimine șobolanii din drumul de la nodul 1
la nodul X
(inclusiv) folosind ultrasunete în toate nodurile simultan. Dacă se folosesc ultrasunete într-un nod infestat, șobolanii de acolo se împrăștie în toate nodurile vecine unde nu se folosesc ultrasunete, acestea devenind infestate. Nodurile unde se folosesc ultrasunete nu mai sunt infestate. După ce șobolanii au plecat, ultrasunetele se opresc, adică nodurile curățate vor putea fi infestate iar în evenimentele ulterioare.3 X
– Lora angajează profesioniști să curețe nodul X
și fiii săi. Ca urmare, X
și fiii direcți nu mai sunt infestați.4 X
– Lora ar vrea să știe numărul total de noduri infestate din subarborele cu rădăcina X
.Ajutați-o pe Lora să scrie un program care prelucrează fiecare eveniment și determină răspunsurile la evenimentele de tip 4.
Problema | infestation | Operații I/O | tastatură/ecran |
---|---|---|---|
Limita timp | 1 secunde | Limita memorie |
Total: 128 MB
/
Stivă 8 MB
|
Id soluție | #37516826 | Utilizator | |
Fișier | infestation.cpp | Dimensiune | 7.84 KB |
Data încărcării | 07 Septembrie 2022, 17:41 | Scor / rezultat | 100 puncte |
infestation.cpp: In function 'void DFS(int)': infestation.cpp:24:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (i=0;i<Graph[ver].size();i++) ^ infestation.cpp: In function 'void buildHL(int, int)': infestation.cpp:49:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (i=0;i<Graph[ver].size();i++) ^ infestation.cpp: In function 'void killPath(int, int)': infestation.cpp:282:9: warning: unused variable 'pathSwitch' [-Wunused-variable] int pathSwitch = 0; ^ infestation.cpp:283:9: warning: unused variable 'ctr' [-Wunused-variable] int ctr = 0; ^ infestation.cpp: In function 'int main()': infestation.cpp:385:51: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while(HLEAFOFFSET[i] < heavyPaths[i].size()) ^ infestation.cpp:363:11: warning: unused variable 'j' [-Wunused-variable] int i,j; ^ infestation.cpp:365:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&n); ^ infestation.cpp:374:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&parent[i]); ^ infestation.cpp:392:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&q); ^ infestation.cpp:398:30: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d",&cm,&x); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0.008 secunde | OK. | 3 | 3 | ||
2 | 0.008 secunde | OK. | 3 | 3 | ||
3 | 0.008 secunde | OK. | 3 | 3 | ||
4 | 0.008 secunde | OK. | 3 | 3 | ||
5 | 0.2 secunde | OK. | 3 | 3 | ||
6 | 0.344 secunde | OK. | 3 | 3 | ||
7 | 0.34 secunde | OK. | 3 | 3 | ||
8 | 0.316 secunde | OK. | 3 | 3 | ||
9 | 0.072 secunde | OK. | 3 | 3 | ||
10 | 0.432 secunde | OK. | 3 | 3 | ||
11 | 0.424 secunde | OK. | 3 | 3 | ||
12 | 0.096 secunde | OK. | 3 | 3 | ||
13 | 0.428 secunde | OK. | 3 | 3 | ||
14 | 0.424 secunde | OK. | 3 | 3 | ||
15 | 0.292 secunde | OK. | 3 | 3 | ||
16 | 0.34 secunde | OK. | 3 | 3 | ||
17 | 0.404 secunde | OK. | 3 | 3 | ||
18 | 0.512 secunde | OK. | 3 | 3 | ||
19 | 0.364 secunde | OK. | 3 | 3 | ||
20 | 0.088 secunde | OK. | 3 | 3 | ||
21 | 0.38 secunde | OK. | 3 | 3 | ||
22 | 0.08 secunde | OK. | 3 | 3 | ||
23 | 0.092 secunde | OK. | 3 | 3 | ||
24 | 0.112 secunde | OK. | 3 | 3 | ||
25 | 0.092 secunde | OK. | 3 | 3 | ||
26 | 0.08 secunde | OK. | 3 | 3 | ||
27 | 0.056 secunde | OK. | 3 | 3 | ||
28 | 0.248 secunde | OK. | 3 | 3 | ||
29 | 0.332 secunde | OK. | 3 | 3 | ||
30 | 0.304 secunde | OK. | 3 | 3 | ||
31 | 0.36 secunde | OK. | 3 | 3 | ||
32 | 0.396 secunde | OK. | 3 | 3 | ||
33 | 0.168 secunde | OK. | 4 | 4 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema infestation 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ă.