Micul curier trebuie sa isi indeplineasca cerintele de la munca cat mai bine. El este responsabil cu livrarea coletelor catre anumiti clienti din Bucuresti. Ca multi participanti in trafic, el alege sa foloseasca metroul ca mijloc de transport principal. Din statiile in care ajunge este necesar sa se 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 s-a gandit sa va ceara ajutorul. Cum ar fi daca ne-am transforma in micile lui ajutoare si ne-am pune in functiune abilitatile de a scrie cod cu scopul de a-i organiza munca ? Credeti ca am reusi sa il transformam intr-un “Mare strateg” ? Ramane de vazut !
Fisierul date.in
Pentru testele cu Backtraking se vor citi un numar_de_strazi si matricea corespunzatoare pentru a ajunge inapoi la sediul jobului sau.
pana la locatia acestuia
poate ajunge. Dupa livrarea comenzilor, curierul se intoarce la statia de metrou din care a plecat
carora le livreaza, are parte si de clienti indisponibili. Dupa ce va termina de expediat coletele la clientii disponibili, el se va intoarce la statia de metrou.
Structurile urmatoare sunt optionale si nu trebuie implementate la fel
Executabilul obținut în urma compilării va avea numele curier, iar regula de rulare va fi:
statie in acest caz).
marcheaza cu infinit in cazul in care statia exista
marcheaza cu infinit in cazul in care strada exista
reparatii.
Afisarea se face sub forma unui vector de string-uri ce contine numele clientilor la care curierul a livrat.
vector de string-uri ce contine numele clientilor la care curierul a livrat.
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
mare sau egala cu numarul “Valoare_suma”
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.
mare adversar al marelui nostru strateg sufera modificari la fiecare noua deplasare.
diagonalei principale din matrice.
Se poate face si o metoda mai inteligenta decat implementarea cu Backtracking. De asemenea, in exemplul din poza este ales un exemplu Greedy. Mare atentie cum implementati alegerea drumului.
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.
;