Detalii evaluare #37461250

Rezumat problemă

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 infestat
  • 2 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.

Detalii

Problema infestation Operații I/O tastatură/ecran
Limita timp 1 secunde Limita memorie Total: 128 MB / Stivă 8 MB
Id soluție #37461250 Utilizator Preda Cristian-Andrei (Preda_Cristian)
Fișier infestation.cpp Dimensiune 7.84 KB
Data încărcării 30 August 2022, 23:33 Scor / rezultat 100 puncte

Evaluare


Mesaj compilare

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);

                              ^

Rezultat evaluare

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.188 secunde OK. 3 3
6 0.352 secunde OK. 3 3
7 0.34 secunde OK. 3 3
8 0.312 secunde OK. 3 3
9 0.072 secunde OK. 3 3
10 0.428 secunde OK. 3 3
11 0.432 secunde OK. 3 3
12 0.096 secunde OK. 3 3
13 0.412 secunde OK. 3 3
14 0.404 secunde OK. 3 3
15 0.288 secunde OK. 3 3
16 0.332 secunde OK. 3 3
17 0.356 secunde OK. 3 3
18 0.428 secunde OK. 3 3
19 0.336 secunde OK. 3 3
20 0.092 secunde OK. 3 3
21 0.356 secunde OK. 3 3
22 0.08 secunde OK. 3 3
23 0.092 secunde OK. 3 3
24 0.104 secunde OK. 3 3
25 0.096 secunde OK. 3 3
26 0.076 secunde OK. 3 3
27 0.056 secunde OK. 3 3
28 0.244 secunde OK. 3 3
29 0.324 secunde OK. 3 3
30 0.284 secunde OK. 3 3
31 0.328 secunde OK. 3 3
32 0.372 secunde OK. 3 3
33 0.168 secunde OK. 4 4
Punctaj total 100

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema infestation face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

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ă.