Detalii evaluare #54197195

Rezumat problemă

#2390 rj

În ultima ecranizare a celebrei piese shakespeariene Romeo și Julieta trăiesc într-un oraș modern, comunică prin e-mail și chiar învață să programeze. Într-o secvență tulburătoare sunt prezentate frământările interioare ale celor doi eroi încercând fără succes să scrie un program care să determine un punct optim de întâlnire.
Ei au analizat harta orașului și au reprezentat-o sub forma unei matrice cu N linii şi M coloane, în matrice fiind marcate cu spațiu zonele prin care se poate trece (străzi lipsite de pericole) şi cu X zonele prin care nu se poate trece. De asemenea, în matrice au marcat cu R locul în care se află locuința lui Romeo, iar cu J locul în care se află locuința Julietei. Ei se pot deplasa numai prin zonele care sunt marcate cu spaţiu, din poziţia curentă în oricare dintre cele 8 poziţii învecinate (pe orizontală, verticală sau diagonale).
Cum lui Romeo nu îi place să aştepte şi nici să se lase aşteptat n-ar fi tocmai bine, ei au hotărât că trebuie să aleagă un punct de întâlnire în care atât Romeo, cât şi Julieta să poată ajunge în acelaşi timp, plecând de acasă. Fiindcă la întâlniri amândoi vin într-un suflet, ei estimează timpul necesar pentru a ajunge la întâlnire prin numărul de elemente din matrice care constituie drumul cel mai scurt de acasă până la punctul de întâlnire. Şi cum probabil există mai multe puncte de întâlnire posibile, ei vor să îl aleagă pe cel în care timpul necesar pentru a ajunge la punctul de întâlnire este minim.
Scrieţi un program care să determine o poziţie pe hartă la care Romeo şi Julieta pot să ajungă în acelaşi timp. Dacă există mai multe soluţii, programul trebuie să determine o soluţie pentru care timpul este minim.

Detalii

Problema rj Operații I/O rj.in/rj.out
Limita timp 0.2 secunde Limita memorie Total: 16 MB / Stivă 8 MB
Id soluție #54197195 Utilizator Brie Darius (DariusBrie)
Fișier rj.cpp Dimensiune 1.82 KB
Data încărcării 21 Noiembrie 2024, 20:46 Scor / rezultat 100 puncte

Evaluare


Mesaj compilare

rj.cpp: In function 'int main()':
rj.cpp:90:36: warning: 'jsol' may be used uninitialized in this function [-Wmaybe-uninitialized]
     fout<<d+1<<' '<<isol<<' '<<jsol;

                                    ^
rj.cpp:90:21: warning: 'isol' may be used uninitialized in this function [-Wmaybe-uninitialized]
     fout<<d+1<<' '<<isol<<' '<<jsol;

                     ^
rj.cpp:74:17: warning: 'jl' may be used uninitialized in this function [-Wmaybe-uninitialized]
     BFS(il,jl,l);

                 ^
rj.cpp:74:17: warning: 'il' may be used uninitialized in this function [-Wmaybe-uninitialized]
rj.cpp:73:17: warning: 'jr' may be used uninitialized in this function [-Wmaybe-uninitialized]
     BFS(ir,jr,r);

                 ^
rj.cpp:73:17: warning: 'ir' may be used uninitialized in this function [-Wmaybe-uninitialized]

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
0 0 secunde OK. 10 10
1 0 secunde OK. 10 10
2 0 secunde OK. 10 10
3 0 secunde OK. 10 10
4 0 secunde OK. 10 10
5 0 secunde OK. 10 10
6 0 secunde OK. 10 10
7 0 secunde OK. 10 10
8 0 secunde OK. 10 10
9 0 secunde OK. 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 rj 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ă.