#4926
În regatul Ofni este Ajunul Crăciunului. Maleficul vrăjitor Irum din regatul vecin Akizif a aruncat un blestem asupra a k orașe din regatul Ofni, orașe care pot fi vizualizate ca matrici cu ni linii și mi coloane. Acest blestem constă în grinchificarea persoanelor din aceste orașe. Blestemul funcționează în felul următor. Irum alege din fiecare oraș mai multe case (pătrățele unitate ale matricei oraș) și le infectează. După ce termină de infectat casele de pornire, blestemul infectează oricare casă cu cel puțin doi vecini pe linie sau coloană. Cum blestemul se mișcă foarte rapid, transformările se petrec instantaneu. Pentru că era bătrân și obosit, Irum a făcut o greșeală, astfel că dacă blestemul nu va putea infecta întregul oraș, acesta se destramă și nu va avea efect. Dacă toate casele din oraș vor fi afectate, toți locuitorii orașului vor deveni grinchi.
Pentru a salva Crăciunul, bunul vrăjitor Picm trebuie să găsească o vrajă pentru a preschimba locuitorii grinchificați ai orașului înapoi cum erau. Cu ajutorul unui spion, Picm a aflat câte orașe sunt infectate, dimensiunile acestora, precum și câte și care au fost celule infectate inițial de Irum. Picm știe că vraja se află în cartea lui magică, Pbofni, la pagina numărul P unde P este suma oki*ini*mi%97 și oki este 1 dacă orașul a fost infectat și 0 în cazul contrar. Cum în Ofni nu s-au inventat încă calculatoarele și apusul e aproape, Picm, bun algoritmician de altfel, vă cere ajutorul pentru a afla numărul paginii și a salva Crăciunul de pandemia de grinchi.
Problema are două cerințe.
Pentru c = 1, se cere determinarea numărului de orașe grinchificate.
Pentru c = 2, se cere numărul paginii P la care se află vraja salvatoare.
| Problema | Pandemica | Operații I/O |
pandemica.in/pandemica.out
|
|---|---|---|---|
| Limita timp | 0.7 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #63994076 | Utilizator | |
| Fișier | pandemica.cpp | Dimensiune | 3.64 KB |
| Data încărcării | 02 Aprilie 2026, 17:29 | Scor/rezultat | 40 puncte |
pandemica.cpp: In function 'int main()': pandemica.cpp:90:35: warning: 'col' may be used uninitialized in this function [-Wmaybe-uninitialized] if (infected_id[r][col] != current_city) { ^ pandemica.cpp:90:35: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 1 | 0.008 secunde | OK. | 5 | 5 | ||
| 2 | 0.056 secunde | OK. | 5 | 5 | ||
| 3 | 0.156 secunde | OK. | 10 | 10 | ||
| 4 | 0.416 secunde | OK. | 10 | 10 | ||
| 5 | 0.464 secunde | OK. | 10 | 10 | ||
| 6 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 7 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 8 | 0.184 secunde | Raspuns gresit. | 10 | 0 | ||
| 9 | 0.392 secunde | Raspuns gresit. | 10 | 0 | ||
| 10 | 0.344 secunde | Raspuns gresit. | 10 | 0 | ||
| 11 | 0.484 secunde | Raspuns gresit. | 10 | 0 | ||
| 12 | 0.58 secunde | Raspuns gresit. | 10 | 0 | ||
| Punctaj total | 40 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Pandemica 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ă.