Unelte utilizator

Unelte site


teme2019:tema-2:micul-marele-strateg

Diferențe

Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.

Link către această vizualizare comparativă

Ambele părți revizuirea anterioară Versiuni anterioare
Urmatoarea versiune
Versiuni anterioare
teme2019:tema-2:micul-marele-strateg [2019/04/21 21:11]
david.broscoteanu [Punctaje si Detalii Tehnice]
teme2019:tema-2:micul-marele-strateg [2019/04/23 22:46]
mihai.iacov șters
Linia 7: Linia 7:
   - Deadline hard, **19 Mai ora 23:59** (termen limită - **nu se obţin puncte** pe soluţiile trimise mai târziu)   - Deadline hard, **19 Mai ora 23:59** (termen limită - **nu se obţin puncte** pe soluţiile trimise mai târziu)
   - Trimiterea temelor se face pe platforma [[https://vmchecker.cs.pub.ro/ui/#|vmchecker]] (folosiți credențialele de pe http://acs.curs.pub.ro).   - Trimiterea temelor se face pe platforma [[https://vmchecker.cs.pub.ro/ui/#|vmchecker]] (folosiți credențialele de pe http://acs.curs.pub.ro).
-  - Checker-ul offline îl puteţi descărca de la această [[|adresă]] +  - Checker-ul offline îl puteţi descărca de la această [[https://drive.google.com/drive/folders/14T8GgG-Cf1NYut-zYaVplEQ8bT5qAypZ?usp=sharing|adresă]] 
   - Puteţi cere ajutor oricând la această adresă [[sda.ab.teme@gmail.com|email]]   - Puteţi cere ajutor oricând la această adresă [[sda.ab.teme@gmail.com|email]]
  
 ===== Descriere ===== ===== Descriere =====
-Micul curier trebuie sa isi indeplineasca cerintele de la munnca cat mai bine, astfel incat este responsabil +Micul curier trebuie sa isi indeplineasca cerintele de la munca cat mai bine. El este responsabil 
-cu livrarea coletelor catre anumiti clienti din Bucuresti. La fel ca toti ceilalti participanti in trafic, el alege +cu livrarea coletelor catre anumiti clienti din Bucuresti. Ca multi participanti in trafic, el alege 
-sa foloseasca metroul ca mijloc de transport. Din magistralele in care ajunge este necesar sa se +sa foloseasca metroul ca mijloc de transport principal. Din statiile in care ajunge este necesar sa se 
-deplaseze in continuare pana la adresa aferenta fiecarui client.+deplaseze in continuare pe jos pana la adresa aferenta fiecarui client.
  
 Avand in vedere faptul ca timpul lui de livrare este unul limitat si el nu este cel mai bun strateg, curierul Avand in vedere faptul ca timpul lui de livrare este unul limitat si el nu este cel mai bun strateg, curierul
Linia 21: Linia 21:
 transformam intr-un “Mare strateg” ? Ramane de vazut ! transformam intr-un “Mare strateg” ? Ramane de vazut !
  
 +{{ :teme2019:tema-2:jhnj.jpg |}}
 ===== Date de intrare ===== ===== Date de intrare =====
 ** Fisierul date.in ** ** Fisierul date.in **
Linia 43: Linia 43:
   - Pe urmatoarele Numar_operatii_strategie linii avem operatiile si descrierea lor   - Pe urmatoarele Numar_operatii_strategie linii avem operatiile si descrierea lor
 =====  Backtracking ===== =====  Backtracking =====
-      Pentru testele cu Backtraking se vor citi un numar_de_strazi si matricea corespunzatoare pentru a ajunge inapoi la sediul jobului sau. + 
 +Pentru testele cu **Backtraking** se vor citi un numar_de_strazi si matricea corespunzatoare pentru a ajunge inapoi la sediul jobului sau. 
  
 =====  Punctaje si Detalii Tehnice ===== =====  Punctaje si Detalii Tehnice =====
Linia 52: Linia 53:
  
 === Detalii Tehnice === === Detalii Tehnice ===
-  * Distanta – distanta dintre statiile de metrou +  * **Distanta** – distanta dintre statiile de metrou 
-  * Timp_fata_de_statia_de_metrou – este timpul de la statia de metrou corespunzatoare clientului si+  * **Timp_fata_de_statia_de_metrou** – este timpul de la statia de metrou corespunzatoare clientului si
 pana la locatia acestuia pana la locatia acestuia
   * Intre clientii care sunt localizati in zone apropiate ca distanta din Bucuresti se afla strazi.   * Intre clientii care sunt localizati in zone apropiate ca distanta din Bucuresti se afla strazi.
Linia 63: Linia 64:
 coletele la clientii disponibili, el se va intoarce la statia de metrou. coletele la clientii disponibili, el se va intoarce la statia de metrou.
  
-  === Anexa ===  +=====  Anexa =====
- +
-  +
  
 {{ :teme2019:tema-2:anexa3.png |}} {{ :teme2019:tema-2:anexa3.png |}}
Linia 72: Linia 70:
 Executabilul obținut în urma compilării va avea numele curier, iar regula de rulare va fi: Executabilul obținut în urma compilării va avea numele curier, iar regula de rulare va fi:
 <note tip>./curier date.txt rezultate.out</note> <note tip>./curier date.txt rezultate.out</note>
 +
 +=====  Cerinte =====
 +  * **conexiune x y** - Se verifica daca exista strada intre doi clienti { da - afiseaza OK; nu - afiseaza NO}
 +  * **legatura x** - Afiseaza statiile de metrou cu care exista legatura directa(curierul merge doar o
 +statie in acest caz).
 +              * **Exemplu: Statie1 Statie2 Statie3**
 +                       * Se afiseaza un rand liber in cazul in care nu exista nicio statie de metrou legata
 +  * **blocaj_tunel x y** – Se blocheaza un drum intre 2 statii de metrou – nu se afiseaza nimic, se
 +marcheaza cu infinit in cazul in care statia exista 
 +  * **blocaj_strada x y** - Se aglomereaza o strada(timpul devine infinit) – nu se afiseaza nimic, se
 +marcheaza cu infinit in cazul in care strada exista
 +  * **adauga_ruta x y valoare_distanta** – Se construieste un drum intre 2 statii de metrou.
 +  * **sterge_ruta x y** – Inchide un drum intre doua statii de metrou – inundatie, oprire pentru
 +reparatii.
 +  * **adauga_strada x y valoare_distanta** – Se construieste un drum intre 2 clienti.
 +  * **sterge_strada x y** – Inchide un drum intre doi clienti – oprire pentru reparatii
 +  * **drum_strada x y** – Calculeaza cel mai scurt timp de la x la y(x si y sunt clienti). Se afiseaza clientii in ordinea in care le-a fost livrata comanda, incepand cu primul si pana la ultimul.
 +Afisarea se face sub forma unui vector de string-uri ce contine numele clientilor la care curierul a livrat.
 +  * **drum_metrou x y** – Calculeaza cel mai scurt drum de la x la y(x si y sunt statiile de metrou). Se afiseaza numele statiilor inecepand cu prima statie si pana la ultima. Afisarea se face sub foma unui
 +vector de string-uri ce contine numele clientilor la care curierul a livrat.
 +  * **timp_minim_statie x** – Calculeaza timpul minim necesar livrarii comenzii la Statia x. Curierul opteaza pentru parcurgerea drumului cel mai scurt catre primul client si mai apoi se parcurge
 +drumul cel mai scurt de la clientul respectiv la toti clientii. De la ultimul client micul strateg alege
 +direct strada care face legatura cu metroul
 +  * **comanda_statie valoare_suma** – Afiseaza statiile in urma carora curierul obtine o suma mai
 +mare sau egala cu numarul “Valoare_suma” 
 +
 +=== Backtracking ===
 +
 +Dupa ce micul strateg reuseste sa devina un „Mare strateg”, voi fiind responsabili in totalitate pentru
 +reusita lui, curierul trebuie sa isi incheie activitatea prin depunerea sumei colectate din coletele achitate
 +de catre clienti. El poate depune aceasta suma la orice sediu al firmei, insa nu mai poate folosi ca mijloc
 +de transport metroul. De specificat faptul ca fiecare statie de metrou are asociata un sediu.
 +
 +Luand in considerare faptul ca drumul arata ca un labirint, fiind intregit doar din strazi la stanga sau la
 +dreapta (numarul strazi merge la stanga = numarul de strazi merge la dreapta), sa il ajutam in continuare
 +pe Marele strateg isi indeplineasca toate cerintele:
 +
 +**Sa se determine cel mai scurt timp in care curierul poate sa ajunga la sediu.**
 +  * Problema poate fi vazuta ca o matrice care are asociat timpul pe fiecare strada. Timpul, cel mai
 +mare adversar al marelui nostru strateg sufera modificari la fiecare noua deplasare. 
 +  * De asemenea, regula de parcurgere a drumului presupune deplasarea dintr-un colt in altul al
 +diagonalei principale din matrice. 
 +
 +===== Date de iesire =====
 +** Fisierul rezultate.out **
 +
 +Fişierul de ieşire va conţine rezultatele operaţiilor ce generează un răspuns. Rezultatele sunt scrise în
 +ordinea în care sunt scrise operaţiile primite la intrare, fiecare rezultat este urmat de un final de linie.
 +
 +In cazul testelor cu Backtraking, pe ultima linie a fisierului este timpul minim pana la sediu. 
  
 ===== Reguli de trimitere ===== ===== Reguli de trimitere =====