Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.
Ambele părți revizuirea anterioară Versiuni anterioare Urmatoarea versiune | Versiuni anterioare | ||
teme2019:tema-2:micul-marele-strateg [2019/04/21 21:10] david.broscoteanu [==== Anexa ====] |
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:// | - Trimiterea temelor se face pe platforma [[https:// | ||
- | - Checker-ul offline îl puteţi descărca de la această [[|adresă]] | + | - Checker-ul offline îl puteţi descărca de la această [[https:// |
- 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 | + | Micul curier trebuie sa isi indeplineasca cerintele de la munca cat mai bine. El este responsabil |
- | cu livrarea coletelor catre anumiti clienti din Bucuresti. | + | cu livrarea coletelor catre anumiti clienti din Bucuresti. |
- | sa foloseasca metroul ca mijloc de transport. Din magistralele | + | sa foloseasca metroul ca mijloc de transport |
- | deplaseze in continuare pana la adresa aferenta fiecarui client. | + | deplaseze in continuare |
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 ! | ||
+ | {{ : | ||
===== 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. | ||
===== Punctaje si Detalii Tehnice ===== | ===== Punctaje si Detalii Tehnice ===== | ||
Linia 52: | Linia 53: | ||
=== Detalii Tehnice === | === Detalii Tehnice === | ||
- | * Distanta – distanta dintre statiile de metrou | + | |
- | * 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, | coletele la clientii disponibili, | ||
- | === ==== == Anexa == | + | ===== Anexa ===== |
- | ==== === | + | |
- | + | ||
{{ : | {{ : | ||
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> | <note tip> | ||
+ | |||
+ | ===== 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, | ||
===== Reguli de trimitere ===== | ===== Reguli de trimitere ===== |