#4818

Privit din satelit, Golful Biscayne (Florida) este format din n × m celule pătratice, fiecare celulă fiind umplută fie cu pământ, fie cu apă. Celulele umplute cu pământ sunt grupate în insule: două celule umplute cu pământ fac parte din aceeași insulă dacă și numai dacă se poate ajunge de la una la cealaltă prin deplasare (în sus, jos, stânga sau dreapta) doar pe pământ.
Golful poate fi văzut, astfel, ca o matrice A cu n linii și m coloane (numerotate de la 1), unde A[i][j] = 1 dacă celula de pe linia i și coloana j este umplută cu pământ și A[i][j] = 0 dacă este umplută cu apă.
Spunem că o insulă se află la stânga unei coloane c dacă și numai dacă toate celulele ce intră în alcătuirea insulei sunt strict la stânga coloanei c, adică sunt situate pe coloane strict mai mici decât c. Analog, stabilim dacă o insulă se află la dreapta unei coloane c, respectiv deasupra sau dedesubtul unei linii l. De exemplu, în desenul de mai sus, insulele A, B și C sunt la stânga coloanei 7, insula E este la dreapta coloanei 7, iar insula D nu este nici la stânga, nici la dreapta coloanei 7. De asemenea, insulele A și B sunt deasupra liniei 3, iar insulele C, D și E sunt dedesubtul liniei 4. Mai mult, insulele C, D și E nu sunt nici deasupra, nici dedesubtul liniei 5.
Problema are trei cerințe, cerința de rezolvat fiind dată de T ∈ {1, 2, 3}.
T = 1. Determinați numărul de celule din golf ce sunt umplute cu pământ.T = 2. Determinați numărul de insule din golf ce conțin un număr maxim de celule. Dacă nu există nicio insulă, atunci valoarea acestui număr este 0.T = 3. Se dau, în ordine, Q interogări, fiecare fiind descrisă printr-o literă și un număr naturalp. Determinați valoarea produsului a × b, știind că:
C, atunci a reprezintă numărul de celule din toate insulele ce se află la stânga coloanei p (1 ≤ p ≤ m) și b numărul de celule din toate insulele ce se află la dreapta coloanei p.L, atunci a reprezintă numărul de celule din toate insulele ce se află deasupra liniei p (1 ≤ p ≤ n) și b numărul de celule din toate insulele ce se află dedesubtul liniei p.| Problema | Golf | Operații I/O |
golf.in/golf.out
|
|---|---|---|---|
| Limita timp | 1 secunde | Limita memorie |
Total: 256 MB
/
Stivă 64 MB
|
| Id soluție | #64221843 | Utilizator | |
| Fișier | golf.cpp | Dimensiune | 3.25 KB |
| Data încărcării | 23 Aprilie 2026, 17:36 | Scor/rezultat | 100 puncte |
golf.cpp: In function ‘int main()’: golf.cpp:53:12: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 53 | freopen("golf.in","r",stdin); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ golf.cpp:54:12: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 54 | freopen("golf.out","w",stdout); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 1 | 0.009 secunde | OK. | 9 | 9 | ||
| 2 | 0.012 secunde | OK. | 9 | 9 | ||
| 3 | 0.011 secunde | OK. | 9 | 9 | ||
| 4 | 0.04 secunde | OK. | 3 | 3 | ||
| 5 | 0.062 secunde | OK. | 4 | 4 | ||
| 6 | 0.013 secunde | OK. | 5 | 5 | ||
| 7 | 0.014 secunde | OK. | 5 | 5 | ||
| 8 | 0.049 secunde | OK. | 5 | 5 | ||
| 9 | 0.002 secunde | OK. | 3 | 3 | ||
| 10 | 0.002 secunde | OK. | 3 | 3 | ||
| 11 | 0.002 secunde | OK. | 3 | 3 | ||
| 12 | 0.003 secunde | OK. | 3 | 3 | ||
| 13 | 0.003 secunde | OK. | 2 | 2 | ||
| 14 | 0.032 secunde | OK. | 3 | 3 | ||
| 15 | 0.031 secunde | OK. | 3 | 3 | ||
| 16 | 0.029 secunde | OK. | 3 | 3 | ||
| 17 | 0.047 secunde | OK. | 4 | 4 | ||
| 18 | 0.053 secunde | OK. | 4 | 4 | ||
| 19 | 0.058 secunde | OK. | 4 | 4 | ||
| 20 | 0.067 secunde | OK. | 4 | 4 | ||
| 21 | 0.055 secunde | OK. | 4 | 4 | ||
| 22 | 0.103 secunde | OK. | 4 | 4 | ||
| 23 | 0.104 secunde | OK. | 4 | 4 | ||
| Punctaj total | 100 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Golf 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ă.