Detalii evaluare #41892851

Rezumat problemă

#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:

  • să înceapă pe o zonă cu apă consecutivă pe linie sau coloană cu o zonă aparţinând ţării R;
  • să se termine pe o zonă cu apă consecutivă pe linie sau coloană cu o zonă aparţinând ţării G;
  • să traverseze numai zone acoperite cu apă;
  • oricare două elemente consecutive ale podului trebuie să fie vecine;
  • lungimea podului să fie minimă (lungimea podului este egală cu numărul de elemente traversate de pod).

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

Detalii

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 Cocut Alexandru (Summer05)
Fișier insule.cpp Dimensiune 3.90 KB
Data încărcării 07 Februarie 2023, 18:04 Scor / rezultat 100 puncte

Evaluare


Mesaj compilare

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

                                       ^

Rezultat evaluare

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

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