#1099
Insule
Arhipelagul RGB este format din insule care aparţin ţărilor R
, G
şi B
. Putem reprezenta harta arhipelagului ca o matrice cu n
linii şi m
coloane cu elemente din mulţimea {0, 1, 2, 3}
. Un element egal cu 0
reprezintă o zonă acoperită de apă; un element egal cu 1
reprezintă o zonă de pământ aparţinând unei insule din ţara R
, iar un element egal cu 2
reprezintă o zonă de pământ aparţinând unei insule din ţara G
, iar un element egal cu 3
reprezintă o zonă de pământ aparţinând unei insule din ţara B
.
Se consideră că două elemente ale matricei sunt vecine dacă ele au aceeaşi valoare şi fie sunt consecutive pe linie, fie sunt consecutive pe coloană. Două elemente aparţin aceleiaşi insule dacă ele sunt vecine sau dacă se poate ajunge de la un element la celălalt pe un drum de-a lungul căruia oricare două elemente consecutive sunt vecine.
Pentru a încuraja relaţiile de colaborare dintre ţările R
şi G
, se doreşte construirea unui pod care să unească o insulă aparţinând ţării R
de o insulă aparţinând ţării G
. Podul trebuie să respecte următoarele condiţii:
R
;G
;Dată fiind harta arhipelagului să se determine câte insule aparţin fiecărei ţări, precum şi lungimea minimă a unui pod care să satisfacă condiţiile din enunț.
OJI 2009, Clasa a X-a
Problema | Insule | Operații I/O |
insule.in /insule.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #41892851 | Utilizator | |
Fișier | insule.cpp | Dimensiune | 3.90 KB |
Data încărcării | 07 Februarie 2023, 18:04 | Scor / rezultat | 100 puncte |
insule.cpp: In function 'int main()': insule.cpp:120:37: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("insule.in", "r", stdin); ^ insule.cpp:121:39: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("insule.out", "w", stdout); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0.004 secunde | Cerinta a - corect. Cerinta b - corect. | 10 | 10 | ||
2 | 0 secunde | Cerinta a - corect. Cerinta b - corect. | 10 | 10 | ||
3 | 0 secunde | Cerinta a - corect. Cerinta b - corect. | 10 | 10 | ||
4 | 0.056 secunde | Cerinta a - corect. Cerinta b - corect. | 10 | 10 | ||
5 | 0.004 secunde | Cerinta a - corect. Cerinta b - corect. | 10 | 10 | ||
6 | 0.06 secunde | Cerinta a - corect. Cerinta b - corect. | 10 | 10 | ||
7 | 0.056 secunde | Cerinta a - corect. Cerinta b - corect. | 10 | 10 | ||
8 | 0.036 secunde | Cerinta a - corect. Cerinta b - corect. | 10 | 10 | ||
9 | 0.036 secunde | Cerinta a - corect. Cerinta b - corect. | 10 | 10 | ||
10 | 0.076 secunde | Cerinta a - corect. Cerinta b - corect. | 10 | 10 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Insule 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ă.